realpath

(PHP 4, PHP 5, PHP 7, PHP 8)

realpathВозвращает канонизированный абсолютный путь к файлу

Описание

realpath(string $path): string|false

Функция 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

Смотрите также

  • basename() - Возвращает конечный компонент имени пути
  • dirname() - Возвращает путь к родительскому каталогу
  • pathinfo() - Возвращает информацию о пути к файлу