PHP中的一些路徑變數或函式

2021-08-30 19:05:41 字數 2819 閱讀 7456

<?php  /**  __file__ ,  getcwd(),  $_server["request_uri"],  $_server["script_name"],  $_server["php_self"],  $_server["script_filename"],    來觀察一下這些變數或函式 ...

<?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

」;echo 「getcwd: 「, getcwd(), 「

」;echo 「__file__: 「, __file__, 「

」;echo 「request_uri: 「, $_server["request_uri"], 「

」;echo 「script_name: 「, $_server["script_name"], 「

」;echo 「php_self: 「, $_server["php_self"], 「

」;echo 「script_filename 「, $_server["script_filename"] , 「

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

include_once(」test2/test2.php」);

?>

PHP中對變數的一些說明

如果程式比較大,引用同乙個物件的變數比較多,並且希望用完該物件後手工清除它,個人建議用 方式,然後用 var null的方式清除.php5中對於大陣列的傳遞,建議用 方式,畢竟節省記憶體空間使用。php中對於位址的指向功能不是由使用者自己來實現的,是由zend核心實現的 php中引用採用的是 寫時拷...

php一些函式

1.show source 函式是php中的內建函式,用於返回突出顯示php語法的檔案。通過使用html標記突出顯示語法 2.strstr 函式 定義和用法 strstr 函式搜尋字串在另一字串中是否存在,如果是,返回該字串及剩餘部分,否則返回 false。注釋 該函式是二進位制安全的。注釋 該函式...

PHP 變數型別中的一些問題

1 整形 echo 027 23?為什麼因為027是八進位制數 2 0.3 0.2 0.1嗎?不等於 為什麼?因為 浮點數的精度有限。儘管取決於系統,php 通常使用 ieee 754 雙精度格式,則由於取整而導致的最大相對誤差為 1.11e 16。非基本數 算可能會給出更大誤差,並且要考慮到進行復...