realpath

(PHP 4, PHP 5, PHP 7, PHP 8)

realpath返回規(guī)范化的絕對路徑名

說明

realpath(string $path): string|false

realpath() 擴(kuò)展所有符號連接,并處理輸入 path 中的 /./、/../ 和多余的 /,并返回規(guī)范化的絕對路徑名。

參數(shù)

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

參見