0

Caminhos de Arquivos e Diretórios

criado por Rubens Takiguti Ribeiro em 24/02/2011 8:39pm
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 vetor) 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 "\".

    Fonte: http://rubsphp.blogspot.com/

Comentários:

Nenhum comentário foi enviado ainda.

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)