(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"