Frequentemente surge uma ferramenta em uma aplicação que precisa recuperar um determinado dado de um caminho completo a um arquivo ou diretório. As vezes precisamos apenas do diretório, ou apenas o nome do arquivo, ou apenas a extensão do arquivo, etc. Frequentemente os programadores utilizam funções como explode, strpos e substr para obter o que querem. De fato, até conseguem, mas nem todos sabem que já existem funções no PHP próprias para isso.
Vejamos as principais delas:
- dirname - Obtém a porção que representa o diretório a partir de um caminho completo informado.
- basename - Obtém a porção que representa o nome do arquivo ou diretório a partir de um caminho completo informado.
- pathinfo - Obtém várias informações (na forma de um array) sobre um caminho informado ou obtém uma informação específica, caso informada.
- realpath - Obtém o caminho absoluto de um caminho relativo (caminha sobre ".", ".." e links simbólicos, além de remover "/" desnecessários) ou retorna false, caso o caminho não exista.
Veja alguns exemplos:
$path = '/home/rubens/teste.php'; echo basename($path); // obtem "teste.php" echo dirname($path); // obtem "/home/rubens" echo dirname(dirname($path)); // obtem "/home" $pathinfo = pathinfo($path); echo $pathinfo['dirname']; // obtem "/home/rubens" echo $pathinfo['basename']; // obtem "teste.php" echo $pathinfo['extension']; // obtem "php" echo $pathinfo['filename']; // obtem "teste" echo pathinfo($path, PATHINFO_DIRNAME); // obtem: "/home/rubens" echo pathinfo($path, PATHINFO_BASENAME); // obtem: "teste.php" echo pathinfo($path, PATHINFO_EXTENSION); // obtem: "php" echo pathinfo($path, PATHINFO_FILENAME); // obtem: "teste" echo realpath('/home///rubens/pasta/../teste.php'); // obtem "/home/rubens/teste.php"
Além disso, pode ser útil conhecer a constante DIRECTORY_SEPARATOR, que guarda o caractere usado para separar diretórios na plataforma do servidor. Por exemplo, no Linux, a constante devolve "/", mas no Windows devolve "\".
1 comentário
cara muito legal.. estou desenvolvendo um projeto e passei ha usar php.. ficou facil de entender.
valeu (y)
Postar um comentário
Nota: fique a vontade para expressar o que achou deste artigo ou do blog.
Dica: para acompanhar as respostas, acesse com uma conta do Google e marque a opção "Notifique-me".
Atenção: o blogger não permite inclusão de tags nos comentários, por isso, use algum site externo para postar seu código com dúvidas e deixe o link aqui. Exemplo: pastebin.com