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() - Возвращает информацию о пути к файлу