(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)
pathinfo — Возвращает информацию о пути к файлу
Функция pathinfo() возвращает информацию
о пути path
в виде ассоциативного массива или
строки, в зависимости от значения параметра flags
.
Замечание:
Подробнее о получении информации о текущем пути рассказывает раздел «Предопределённые зарезервированные переменные».
Замечание:
Функция pathinfo() наивно оперирует входной строкой и не знает фактическую файловую систему или компоненты пути наподобие «
..
».
Замечание:
Только в системах Windows символ
\
будет интерпретироваться как разделитель каталогов. В других системах символ будет рассматриваться как любой другой символ.
Функция pathinfo() учитывает региональные настройки, поэтому для правильного разбора пути, который содержит многобайтовые символы, необходимо функцией setlocale() установить локаль, которая соответствует символам пути.
path
Анализируемый путь.
flags
Параметр, если установили, указывает конкретный элемент пути, который вернёт функция:
PATHINFO_DIRNAME
,
PATHINFO_BASENAME
,
PATHINFO_EXTENSION
и PATHINFO_FILENAME
.
Если флаг flags
не указали, то возвращаются
все доступные элементы.
Если аргумент flags
не передали,
возвращается ассоциативный массив (array)
со следующими элементами:
dirname
, basename
,
extension
(если есть) и filename
.
Замечание:
Если путь
path
содержит больше одного расширения, флагPATHINFO_EXTENSION
возвращает только последнее, а флагPATHINFO_FILENAME
только удаляет последнее расширение (смотрите первый пример).
Замечание:
Если путь
path
не содержит расширения, функция не вернёт элемент расширенияextension
(смотрите второй пример).
Замечание:
Если основное имя
basename
путиpath
начинается с точки, следующие символы интерпретируются как расширение файла (extension
), а имя файлаfilename
как пустое (смотрите третий пример).
Если флаги flags
указали, функция возвращает
строку (string), которая содержит запрошенный элемент.
Пример #1 Пример использования функции pathinfo()
<?php
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');
echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n";
?>
Результат выполнения приведённого примера:
/www/htdocs/inc lib.inc.php php lib.inc
Пример #2 Пример работы функции pathinfo(), который показывает разницу между null и отсутствием расширения
<?php
$path_parts = pathinfo('/path/emptyextension.');
var_dump($path_parts['extension']);
$path_parts = pathinfo('/path/noextension');
var_dump($path_parts['extension']);
?>
Вывод приведённого примера будет похож на:
string(0) "" Notice: Undefined index: extension in test.php on line 6 NULL
Пример #3 Пример работы функции pathinfo() для файла, имя которого начинается с точки
<?php
print_r(pathinfo('/some/path/.test'));
?>
Вывод приведённого примера будет похож на:
Array ( [dirname] => /some/path [basename] => .test [extension] => test [filename] => )
Пример #4 Пример использования функции pathinfo() с разыменованием массива
Параметр flags
— не битовая маска.
Разрешается только одно значение.
Чтобы выбрать только ограниченный набор значений, которые проанализировала функция,
массив деструктурируют следующим образом:
<?php
['basename' => $basename, 'dirname' => $dirname] = pathinfo('/www/htdocs/inc/lib.inc.php');
var_dump($basename, $dirname);
?>
Вывод приведённого примера будет похож на:
string(11) "lib.inc.php" string(15) "/www/htdocs/inc"