(PHP 4, PHP 5, PHP 7, PHP 8)
dirname — Возвращает имя родительского каталога из указанного пути
$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