PHP獲取當前url路徑的函式及伺服器變數

2021-09-01 22:35:39 字數 3247 閱讀 4366

<?php

/**__file__ ,

getcwd(),

$_server["request_uri"],

$_server["script_name"],

$_server["php_self"],

$_server["script_filename"],

來觀察一下這些變數或函式的異同.

假設有乙個請求位址為: http://localhost:8080/test.php/age=20

而test.php 的完整路徑是: d:/server/www/example/test.php

1) getcwd()

將得到瀏覽器請求的頁面檔案所在的目錄. 即test.php 檔案所在的目錄: d:/server/www/example/ ,

如果在test.php 執行了 require 或 include 語句, 比如 inculde("test_dir/test2.php"),

那麼在 test2.php 裡 getcwd()函式 返回的也將是 test.php 所在的目錄.

2) __file__

乙個魔術變數, 用它將得到 __file__ 變數所在檔案的完整路徑,

比如: test.php 裡 __file__ 將得到 d:/server/www/example/test.php ,

test_dir/test2.php 裡的 __file__ 將得到 d:/server/www/example/test_dir/test2.php

3) $_server["script_filename"]

將得到瀏覽器請求的頁面檔案的完整路徑.

test.php 和 test_dir/test2.php 裡用 $_server["script_name"] 都將得到 d:/server/www/example/test.php.

4) $_server["script_name"]

將得到瀏覽器請求的頁面檔案的檔名,注意: 與 $_server["script_name"] 不同, 此變數只得到檔名而不包含路徑,

在test.php 與 test_dir/test2.php 用$_server["script_name"] 得到的都將是 test.php.

當然, 在test.php 與 test_dir/test2.php 執行 basename($_server["script_filename"]) 與 $_server["script_name"] 相同.

執行 在test.php 與 test_dir/test2.php 執行 realpath("test.php") 得到的結果與 $_server["script_filename"] 相同.

5) $_server["php_self"]

將得到瀏覽器請求頁面的檔名, 並剝掉問號 ? 後的內容, 注意:不包含路徑,

比如在客戶端裡請求 http://localhost:8080/test.php?age=20&name=tom,

那麼test.php 和 test_dir/test2.php 的 $_server["php_self"] 都將得到 "test.php"。"age=20&name=tom"被剝掉。

而如果客戶端裡請求 http://localhost:8080/test.php/age=20&name=tom,

那麼test.php 和 test_dir/test2.php 的 $_server["php_self"] 都將得到 "test.php/age=20&name=tom"。

6) $_server["request_uri"]

將得到瀏覽器請求頁面的檔名, 以及檔名之後的所有內容(注意: 井號 # 之後的內容將被略去),

比如在客戶端裡請求 http://localhost:8080/test.php?age=20&name=tom,

那麼test.php 和 test_dir/test2.php 的 $_server["reuest_uri"] 都將得到 "test.php"。"age=20&name=tom"被剝掉。

而如果客戶端裡請求 http://localhost:8080/test.php/age=20&name=tom,

那麼test.php 和 test_dir/test2.php 的 $_server["request_uri"] 都將得到 "test.php/age=20&name=tom"。

*/// test.php:

echo "test1.php variables

"; variables

echo "getcwd: ", getcwd(), "

"; //getcwd: e:\wamp\www\test

echo "__file__: ", __file__, "

"; //__file__: e:\wamp\www\test\test.php

echo "dirname: ", dirname(__file__), "

"; //dirname: e:\wamp\www\test

echo "request_uri: ", $_server["request_uri"], "

"; //request_uri: /test/test.php

echo "script_name: ", $_server["script_name"], "

"; //script_name: /test/test.php

echo "php_self: ", $_server["php_self"], "

"; //php_self: /test/test.php

echo "script_filename:", $_server["script_filename"] , "

"; //script_filename: e:/wamp/www/test/test.php

echo "document_root: ", $_server['document_root'], "

"; //document_root: e:/wamp/www/

// 把 test2.php 包含進來, 在 test2.php 裡輸出上面的變數,看有什麼不同:

include_once("test2/test2.php");

?>

PHP獲取當前url的函式

php獲取當前url的函式 則顯示 http localhost lu.php 伺服器變數 server 注 在 php 4.1.0 及以後版本使用。之前的版本,使用 http server vars。server 是乙個包含諸如頭部 headers 路徑 paths 和指令碼位置 script l...

PHP獲取當前url的函式

預定義變數 server 附 獲取當前url位址例子 則顯示 http localhost lu.php 伺服器變數 server 注 在 php 4.1.0 及以後版本使用。之前的版本,使用 http server vars。server 是乙個包含諸如頭部 headers 路徑 paths 和指...

js獲取當前url路徑

獲取當前視窗的url var url window.location.href 結果 http localhost 61768 home index?id 2 age 18 獲取當前視窗的主機名 var host window.location.host 結果 localhost 61768 獲取當...