2024 年日本 PHP 研討會

SplFileInfo::getRealPath

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

SplFileInfo::getRealPath取得檔案的絕對路徑

說明

public SplFileInfo::getRealPath(): string|false

這個方法會展開所有符號連結,解析相對參考,並返回檔案的實際路徑。

參數

此函式沒有參數。

回傳值

返回檔案的路徑,如果檔案不存在,則返回 false

範例

範例 #1 SplFileInfo::getRealPath() 範例

<?php
$info
= new SplFileInfo('/..//./../../'.__FILE__);
var_dump($info->getRealPath());

$info = new SplFileInfo('/tmp');
var_dump($info->getRealPath());

$info = new SplFileInfo('/I/Do/Not/Exist');
var_dump($info->getRealPath());

$info = new SplFileInfo('php://output');
var_dump($info->getRealPath());

$info = new SplFileInfo("");
var_dump($info->getRealPath());
?>

上述範例將輸出類似以下的內容:

string(28) "/private/tmp/phptempfile.php" 
string(12) "/private/tmp"
bool(false)
bool(false)
string(12) "/private/tmp"

另請參考

新增註釋

使用者貢獻的註釋 1 則註釋

giel at berkers dot online
6 年前
請注意,由於 realpath 快取機制,當檔案已被其他進程重新命名或取消連結時,此方法將返回 false。

範例

<?php
$info
= new SplFileInfo('example.php');
$info->getRealPath(); // /path/to/example.php

rename('example.php', 'foobar.php');

$info->getRealPath(); // false
?>
To Top