Файловая система
PHP Manual

realpath

(PHP 4, PHP 5, PHP 7)

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

Описание

string realpath ( string $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

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


Файловая система
PHP Manual