array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'pt_BR', ), 'this' => array ( 0 => 'function.readdir.php', 1 => 'readdir', ), 'up' => array ( 0 => 'ref.dir.php', 1 => 'Funções de Diretórios', ), 'prev' => array ( 0 => 'function.opendir.php', 1 => 'opendir', ), 'next' => array ( 0 => 'function.rewinddir.php', 1 => 'rewinddir', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'pt_BR', 'path' => 'reference/dir/functions/readdir.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
readdir — Lê entrada do manipulador do diretório
Retorna o nome da próxima entrada do diretório. As entradas são retornadas na ordem em que estão armazenadas no sistema de arquivos.
Retorna o nome do arquivo em caso de sucesso ou false
em caso de falha.
Esta função pode
retornar o valor booleano false
, mas também pode retornar um valor não booleano que pode ser
avaliado como false
. Leia a seção sobre Booleanos para mais
informações. Use o operador
=== para testar o valor retornado por esta
função.
Versão | Descrição |
---|---|
8.0.0 |
dir_handle agora pode ser nulo.
|
Exemplo #1 Listando todas as entradas de um diretório
Note a maneira com que o valor de retorno de
readdir() é verificado nos exemplos abaixo. Está
sendo explicitamente testado se o valor de retorno é idêntico a (igual e
do mesmo tipo que--consulte Operadores de
Comparação para maiores detalhes) false
, caso contrário,
qualquer entrada de diretório cujo nome seja interpretado como false
irá parar o
loop (por exemplo, um diretório com nome "0").
<?php
if ($handle = opendir('/caminho/para/arquivos')) {
echo "Manipulador de diretório: $handle\n";
echo "Arquivos:\n";
/* Esta é a forma correta de percorrer o diretório */
while (false !== ($entry = readdir($handle))) {
echo "$entry\n";
}
/* Esta é a forma INCORRETA de percorrer o diretório */
while ($entry = readdir($handle)) {
echo "$entry\n";
}
closedir($handle);
}
?>
Exemplo #2
Lista todas as entradas no diretório atual e remove .
e ..
<?php
if ($handle = opendir('.')) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
echo "$entry\n";
}
}
closedir($handle);
}
?>