realpath
(PHP 4, PHP 5, PHP 7, PHP 8)
realpath — 返回規範化的絕對路徑名
說明
$path
): string|false
realpath() 擴充套件所有符號連線,並處理輸入
path
中的 /./
、/../
和多餘的
/
,並返回規範化的絕對路徑名。
參數
-
path
-
要處理的路徑。
注意:
雖然必須提供路徑,但該值可以是一個空字串。 在這種情況下,該值將被解釋為目前目錄。
返回值
成功時返回規範化的絕對路徑名。返回的路徑中沒有符號連線(symbolic link)、/./
或 /../
成分。
例如 \
和 /
這樣的尾隨分隔符也將被刪除。
realpath() 失敗時返回 false
,例如檔案不存在。
注意:
目前執行的指令碼必須對要處理的路徑中的每層目錄都具有可執行許可權,否則 realpath() 將返回
false
。
注意:
對於不區分大小寫的檔案系統,realpath() 不一定會規範字符大小寫。
注意:
realpath() 函式不適用于 Phar 內的檔案,因為該路徑是虛擬路徑,而不是真實路徑。
注意:
在 Windows 上,目錄的結點和符號鏈接僅擴充套件一級。
注意: 因為 PHP 的整數型別是有符號整型而且很多平臺使用 32 位整型,對 2GB 以上的檔案,一些檔案系統函式可能返回無法預期的結果。
範例
示例 #1 realpath() 例子
<?php
chdir('/var/www/');
echo realpath('./../../etc/passwd') . PHP_EOL;
echo realpath('/tmp/') . PHP_EOL;
?>
以上例程會輸出:
/etc/passwd /tmp
示例 #2 Windows 上的 realpath()
在 Windows 上,realpath() 會將 unix 風格的路徑改成 Windows 風格。
<?php
echo realpath('/windows/system32'), PHP_EOL;
echo realpath('C:\Program Files\\'), PHP_EOL;
?>
以上例程會輸出:
C:\WINDOWS\System32 C:\Program Files