请注意,由于 realpath 缓存,当文件被其他进程重命名或删除时,此方法将返回 false。
示例
<?php
$info = new SplFileInfo('example.php');
$info->getRealPath(); // /path/to/example.php
rename('example.php', 'foobar.php');
$info->getRealPath(); // false
?>
(PHP 5 >= 5.2.2, PHP 7, PHP 8)
SplFileInfo::getRealPath — 获取文件的绝对路径
此函数没有参数。
返回文件的路径,如果文件不存在,则返回 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"
请注意,由于 realpath 缓存,当文件被其他进程重命名或删除时,此方法将返回 false。
示例
<?php
$info = new SplFileInfo('example.php');
$info->getRealPath(); // /path/to/example.php
rename('example.php', 'foobar.php');
$info->getRealPath(); // false
?>