(PHP 4, PHP 5, PHP 7, PHP 8)
realpath — Returns canonicalized absolute pathname
realpath() expands all symbolic links and
resolves references to /./
, /../
and extra /
characters in
the input path
and returns the canonicalized
absolute pathname.
path
The path being checked.
Зауваження:
Whilst a path must be supplied, the value can be an empty string. In this case, the value is interpreted as the current directory.
Returns the canonicalized absolute pathname on success. The resulting path
will have no symbolic link, /./
or /../
components. Trailing delimiters,
such as \
and /
, are also removed.
realpath() returns false
on failure, e.g. if
the file does not exist.
Зауваження:
The running script must have executable permissions on all directories in the hierarchy, otherwise realpath() will return
false
.
Зауваження:
For case-insensitive filesystems realpath() may or may not normalize the character case.
Зауваження:
The function realpath() will not work for a file which is inside a Phar as such path would be a virtual path, not a real one.
Зауваження:
On Windows, junctions and symbolic links to directories are only expanded by one level.
Зауваження: Оскільки цілочисельний тип в PHP є знаковим, а багато платформ використовують 32-бітні цілі числа, деякі функції файлової системи можуть повертати неочікувані результати для файлів, розмір яких перевищує 2 ГБ.
Приклад #1 realpath() example
<?php
chdir('/var/www/');
echo realpath('./../../etc/passwd') . PHP_EOL;
echo realpath('/tmp/') . PHP_EOL;
?>
Поданий вище приклад виведе:
/etc/passwd /tmp
Приклад #2 realpath() on Windows
On windows realpath() will change unix style paths to windows style.
<?php
echo realpath('/windows/system32'), PHP_EOL;
echo realpath('C:\Program Files\\'), PHP_EOL;
?>
Поданий вище приклад виведе:
C:\WINDOWS\System32 C:\Program Files