Возвращает информацию о пути к файлу

# pathinfo

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

pathinfo — Возвращает информацию о пути к файлу

### Описание

function pathinfo(string `$path`, int `$flags` = `PATHINFO_ALL`): array|string

Функция 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"

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

- dirname() - Возвращает путь к родительскому каталогу
- basename() - Возвращает конечный компонент имени пути
- parse_url() - Разбирает URL-адрес и возвращает компоненты адреса
- realpath() - Возвращает канонизированный абсолютный путь к файлу

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open