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