pathinfo
(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)
pathinfo — Возвращает информацию о пути к файлу
Описание
Замечание:
Подробнее о получении информации о текущем пути, можно почитать
в разделе Предопределённые зарезервированные переменные.
Замечание:
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"
Смотрите также
- dirname() - Возвращает имя родительского каталога из указанного пути
- basename() - Возвращает последний компонент имени из указанного пути
- parse_url() - Разбирает URL и возвращает его компоненты
- realpath() - Возвращает канонизированный абсолютный путь к файлу