(PHP 4, PHP 5, PHP 7, PHP 8)
realpath — Возвращает канонизированный абсолютный путь к файлу
Функция realpath() разворачивает символические ссылки,
а также разрешает ссылки на относительные пути вида /./, /../
и убирает лишние символы / во входном пути path,
а затем возвращает канонизированный абсолютный путь к файлу или каталогу.
pathПроверяемый путь.
Замечание:
Параметр пути хотя и обязательный, но принимает пустую строку, которую функция интерпретирует как текущий каталог.
При успешном выполнении функция возвращает канонизированный абсолютный путь,
который получился после преобразования символической ссылки, разрешения компонентов
/./ или /../
и удаления разделителей \ или / в конце пути.
Функция realpath() возвращает значение false, если возникла ошибка,
например если файловая система не содержит файл или каталог.
Замечание:
Для запускаемого скрипта потребуются права на выполнение для каждого каталога в иерархии, иначе функция realpath() вернёт значение
false.
Замечание:
В регистронезависимых файловых системах функция realpath() возвращает абсолютный путь с непредсказуемым регистром символов, поскольку за нормализацию регистра отвечает операционная система, а не функция.
Замечание:
Функция realpath() не работает с файлами внутри Phar-архива, поскольку пути в таком архиве виртуальны, а не реальны.
Замечание:
В ОС Windows точки соединения для каталогов и символические ссылки на каталоги разворачиваются только на один уровень.
Замечание: На 32-разрядных платформах отдельные PHP-функции для работы с файловой системой иногда возвращают неожиданные результаты для файлов размером больше 2 ГБ, поскольку в PHP тип integer хранит числа со знаком, а архитектура платформы ограничивает диапазон положительных значений типа.
Пример #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'), PHP_EOL;
echo realpath('C:\Program Files\\'), PHP_EOL;
?>Результат выполнения приведённого примера:
C:\WINDOWS\System32 C:\Program Files