(PHP 4, PHP 5, PHP 7, PHP 8)
realpath — 返回規(guī)范化的絕對路徑名
$path
): string|false
realpath() 擴(kuò)展所有符號連接,并處理輸入
path
中的 /./
、/../
和多余的
/
,并返回規(guī)范化的絕對路徑名。
path
要處理的路徑。
注意:
雖然必須提供路徑,但該值可以是一個(gè)空字符串。 在這種情況下,該值將被解釋為當(dāng)前目錄。
成功時(shí)返回規(guī)范化的絕對路徑名。返回的路徑中沒有符號連接(symbolic link)、/./
或 /../
成分。
例如 \
和 /
這樣的尾隨分隔符也將被刪除。
realpath() 失敗時(shí)返回 false
,例如文件不存在。
注意:
當(dāng)前運(yùn)行的腳本必須對要處理的路徑中的每層目錄都具有可執(zhí)行權(quán)限,否則 realpath() 將返回
false
。
注意:
對于不區(qū)分大小寫的文件系統(tǒng),realpath() 不一定會規(guī)范字符大小寫。
注意:
realpath() 函數(shù)不適用于 Phar 內(nèi)的文件,因?yàn)樵撀窂绞翘摂M路徑,而不是真實(shí)路徑。
注意:
在 Windows 上,目錄的結(jié)點(diǎn)和符號鏈接僅擴(kuò)展一級。
注意: 因?yàn)?PHP 的整數(shù)類型是有符號整型而且很多平臺使用 32 位整型,對 2GB 以上的文件,一些文件系統(tǒng)函數(shù)可能返回?zé)o法預(yù)期的結(jié)果。
示例 #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 風(fēng)格的路徑改成 Windows 風(fēng)格。
<?php
echo realpath('/windows/system32'), PHP_EOL;
echo realpath('C:\Program Files\\'), PHP_EOL;
?>
以上例程會輸出:
C:\WINDOWS\System32 C:\Program Files