dirname

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

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

Описание

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

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

Замечание:

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

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

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

В других системах 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() - Возвращает канонизированный абсолютный путь к файлу