(PHP 4, PHP 5, PHP 7)
dirname — Retorna o caminho/path do diretório pai
$path
[, int $levels
= 1
] )
Dada uma string contendo um caminho para um arquivo ou diretório, esta função
irá retornar o caminho do diretório pai que é
levels
acima do diretório atual.
path
Um caminho.
No Windows, tanto barra (/) quanto a barra invertida (\) são usadas como caracter separador no path. Em outros ambientes é utilizado a barra (/).
levels
O número de diretórios pai para subir.
Deve ser um inteiro maior que 0.
Retorna o caminho do diretório pai. Se não houver nenhuma barra no
path
, um ponto ('.') é retornado,
indicando o diretório atual. Do contrário, a string retornada é o
path
com qualquer /componente
adjacente removido.
Versão | Descrição |
---|---|
7.0.0 |
Adicionado o parâmetro opcional levels .
|
5.0.0 | dirname() passou a ser segura para binários |
Exemplo #1 exemplo do dirname()
<?php
echo dirname("/etc/passwd") . PHP_EOL;
echo dirname("/etc/") . PHP_EOL;
echo dirname(".") . PHP_EOL;
echo dirname("/usr/local/lib", 2);
O exemplo acima irá imprimir algo similar à:
/etc / (ou \ no Windows) . /usr
Nota:
A dirname() opera inocentemente com a string de entrada, e não conhece o filesystem, ou componentes de caminho (path) como o "..".
Nota:
A dirname() é ciente do local (locale), então para que ela veja corretamente o nome do diretório que contenha caracteres multibytes no caminho, o locale certo deve ser definido usando setlocale().
Nota:
A partir do PHP 4.3.0, você receberá frequentemente uma barra ou um ponto da dirname() em situações onde a funcionalidade anterior devolveria uma string vazia.
Confira o exemplo da mudança a seguir:
<?php
//antes do PHP 4.3.0
dirname('c:/'); // retornava '.'
//a partir do PHP 4.3.0
dirname('c:/'); // retorna 'c:'
dirname('c:/Temp/x'); // retorna 'c:/Temp'
dirname('/x'); // retorna '\'
?>