Se não houver um motivo muito claro pra usar opendir, readdir e closedir (não consigo pensar em nenhum), a forma mais prática de listar o conteúdo de um diretório é com DirectoryIterator:
1
2
3
4
5
6
| $iterator = new DirectoryIterator( '/var/www' ); foreach ( $iterator as $entry ) { echo $entry ->getFilename(), " "; } |
Se for necessário listar os arquivos recursivamente, percorrendo todos os subdiretórios, é só usar o RecursiveDirectoryIterator junto com o RecursiveIteratorIterator:
1
2
3
4
5
6
7
| $iterator = new RecursiveDirectoryIterator( '/var/www' ); $recursiveIterator = new RecursiveIteratorIterator( $iterator ); foreach ( $recursiveIterator as $entry ) { echo $entry ->getFilename(), " "; } |
Com um pouco de criatividade, é possível estender essas classes com qualquer lógica facilmente, como por exemplo, para montar uma árvore com a estrutura dos diretórios.
Fonte: http://www.phpit.com.br/artigos/7-coisas-simples-em-php-que-alguns-ainda-complicam.phpit
Muito bom.
ResponderExcluir