realpath

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

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

說明

realpath(string $path): string|false

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

參數(shù)

path

要處理的路徑。

注意:

雖然必須提供路徑,但該值可以是一個空字符串。 在這種情況下,該值將被解釋為當前目錄。

返回值

成功時返回規(guī)范化的絕對路徑名。返回的路徑中沒有符號連接(symbolic link)、/.//../ 成分。 例如 \/ 這樣的尾隨分隔符也將被刪除。

realpath() 失敗時返回 false,例如文件不存在。

注意:

當前運行的腳本必須對要處理的路徑中的每層目錄都具有可執(zhí)行權限,否則 realpath() 將返回 false。

注意:

對于不區(qū)分大小寫的文件系統(tǒng),realpath() 不一定會規(guī)范字符大小寫。

注意:

realpath() 函數(shù)不適用于 Phar 內(nèi)的文件,因為該路徑是虛擬路徑,而不是真實路徑。

注意:

在 Windows 上,目錄的結點和符號鏈接僅擴展一級。

注意: 因為 PHP 的整數(shù)類型是有符號整型而且很多平臺使用 32 位整型,對 2GB 以上的文件,一些文件系統(tǒng)函數(shù)可能返回無法預期的結果。

范例

示例 #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

參見