PHP 8.3.4 Released!

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"

参考

add a note

User Contributed Notes 1 note

up
3
giel at berkers dot online
6 years ago
Note that due to realpath caching this method will return false when the file has been renamed or unlinked by other processes.

Example:

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

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

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