dirname

(PHP 4, PHP 5, PHP 7, PHP 8)

dirnameВозвращает путь к родительскому каталогу

Описание

dirname(string $path, int $levels = 1): string

Функция получит строку, которая содержит путь к файлу или каталогу, и вернёт путь к родительскому каталогу на столько уровней выше текущего каталога, сколько указали в параметре levels.

Замечание:

Функция dirname() наивно работает со входной строкой и не знает действительную файловую систему или компоненты пути наподобие «..».

Предостережение

В ОС Windows функция dirname() принимает установленную кодовую страницу. Поэтому, чтобы функция видела правильное имя каталога, путь которого содержит многобайтовые символы, требуется устанавливать кодовую страницу, которая соответствует кодировке этих символов. Функция dirname() поведёт себя непредсказуемо, если имя пути path содержит неправильные для текущей кодовой страницы символы.

В других системах функция dirname() предполагает, что путь path закодировали в ASCII-совместимой кодировке, иначе функция ведёт себя непредсказуемо.

Список параметров

path

Путь.

На платформах Windows как разделитель имён каталогов работает и прямой /, и обратный \ слеш. В других окружениях — прямой слеш /.

levels

На сколько уровней вложенности вверх требуется пройти.

Значение должно быть целым числом больше 0.

Возвращаемые значения

Функция возвращает путь к родительской директории. Функция возвращает точку «.», которая указывает на текущую директорию, если путь path не содержит слешей, иначе возвращает путь path без последнего компонента /component.

Предостережение

При работе с функцией в цикле соблюдают осторожность, поскольку при достижении каталога верхнего уровня функция войдет в бесконечный цикл.

<?php

dirname
('.'); // Вернёт «.».
dirname('/'); // Вернёт «\» в ОС Windows и «/» в *nix-системах.
dirname('\\'); // Вернёт «\» в ОС Windows и «.» в *nix-системах.
dirname('C:\\'); // Вернёт «C:\» в ОС Windows и «.» в *nix-системах.

?>

Список изменений

Версия Описание
7.0.0 Добавлен необязательный параметр levels.

Примеры

Пример #1 Пример использования функции dirname()

<?php

echo dirname("/etc/passwd") . PHP_EOL;
echo
dirname("/etc/") . PHP_EOL;
echo
dirname(".") . PHP_EOL;
echo
dirname("C:\\") . PHP_EOL;
echo
dirname("/usr/local/lib", 2);

?>

Вывод приведённого примера будет похож на:

/etc
/ (или \ в Windows)
.
C:\
/usr

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

  • basename() - Возвращает конечный компонент имени пути
  • pathinfo() - Возвращает информацию о пути к файлу
  • realpath() - Возвращает канонизированный абсолютный путь к файлу