array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.realpath.php', 1 => 'realpath', ), 'up' => array ( 0 => 'ref.filesystem.php', 1 => 'Функции файловой системы', ), 'prev' => array ( 0 => 'function.realpath-cache-size.php', 1 => 'realpath_cache_size', ), 'next' => array ( 0 => 'function.rename.php', 1 => 'rename', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/filesystem/functions/realpath.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
realpath — Возвращает канонизированный абсолютный путь к файлу
realpath() раскрывает все символические ссылки,
переходы типа /./
, /../
и лишние символы /
в пути path
,
возвращая канонизированный абсолютный путь к файлу.
path
Проверяемый путь.
Замечание:
Несмотря на то, что путь должен быть указан, переданное значение может быть пустой строкой. В этих случаях значение интерпретируется как текущая рабочая директория.
В случае успешного выполнения возвращает канонизированный абсолютный путь.
Результирующий путь не содержит символических ссылок и компонентов
наподобие /./
или '/../
.
Разделители \
и /
в конце пути также удаляются.
realpath() возвращает false
при неудаче, например,
если файл не существует.
Замечание:
Запускаемый скрипт должен иметь права запуска на всех директориях в проверяемой иерархии, иначе realpath() вернёт
false
.
Замечание:
Для регистронезависимых файловых систем, realpath() может нормализовать или не нормализовать регистр символов.
Замечание:
Функция realpath() не будет работать с файлом внутри архива Phar, так как путь может быть не реальным, а виртуальным.
Замечание:
В Windows переходы и символические ссылки на каталоги расширяются только на один уровень.
Замечание: Так как тип integer в PHP является целым числом со знаком, и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2 Гб.
Пример #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