(PHP 4, PHP 5, PHP 7)
realpath — Возвращает канонизированный абсолютный путь к файлу
$path
)
realpath() раскрывает все символические ссылки,
переходы типа '/./', '/../' и лишние символы '/' в пути path
,
возвращая канонизированный абсолютный путь к файлу.
path
Проверяемый путь.
Замечание:
Несмотря на то, что путь должен быть указан, переданное значение может быть пустой строкой или
NULL
. В этих случаях оно будет интерпретировано в качестве текущей директории.
В случае успеха возвращает канонизированный абсолютный путь. Результирующий путь не содержит символических ссылок и компонентов наподобие '/./' или '/../'. Разделители \ и / в конце пути так же удаляются.
realpath() возвращает FALSE
при неудаче, например
если файл не существует.
Замечание:
Запускаемый скрипт должен иметь права запуска на всех директориях в проверяемой иерархии, иначе realpath() вернет
FALSE
.
Замечание:
Для регистро-независимых файловых систем, realpath() может нормализовать или не нормализовать регистр символов.
Замечание: Так как тип integer в PHP является целым числом со знаком и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2ГБ.
Версия | Описание |
---|---|
5.3.0 |
До этого релиза realpath() не терпела
неудачу на системах *BSD в случае отсутствия лишь
последнего компонента пути path .
Теперь realpath() не срабатывает также
и в этом случае.
|
5.2.1 |
До этой версии, realpath() возвращает FALSE
если path является пустой строкой или NULL .
|
Пример #1 Пример использования функции realpath()
<?php
chdir('/var/www/');
echo realpath('./../../etc/passwd') . PHP_EOL;
echo realpath('/tmp/') . PHP_EOL;
?>
Результат выполнения данного примера:
/etc/passwd /tmp
Пример #2 realpath() на Windows
На Windows, realpath() изменит пути стиля Unix на стиль Windows.
<?php
echo realpath('/windows/system32');
echo realpath('C:\Program Files\\');
?>
Результат выполнения данного примера:
C:\WINDOWS\System32 C:\Program Files