Обратите внимание на способ проверки значения, возвращаемого функцией readdir() в приведенном ниже примере. В этом примере осуществляется проверка значения на идентичность (выражения идентичны, когда они равны и являются значениями одного типа - за более подробной информацией обратитесь к главе Операторы сравнения) значению FALSE, поскольку в ином случае, любой элемент каталога, чье имя может быть выражено как FALSE, остановит цикл (например, элемент с именем "0").
Пример кода
<?php
// Вывести список всех файлов в каталоге
// Обратите внимание, что оператор !== не существовал до версии 4.0.0-RC2
if ($handle = opendir('/path/to/files'))
{
echo "Дескриптор каталога: $handle\n";
echo "Файлы:\n";
/* Именно этот способ чтения элементов каталога является правильным. */
while (false !== ($file = readdir($handle)))
{
echo "$file\n";
}
/* Этот способ НЕВЕРЕН. */
while ($file = readdir($handle))
{
echo "$file\n";
}
closedir($handle);
}
?>
Обратите внимание, что функция readdir() также возвращает элементы с именами, и, если вы не хотите получать эти значения, просто отбрасывайте их:
Пример кода
<?php
if ($handle = opendir('.'))
{
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..")
{
echo "$file\n";
}
}
closedir($handle);
}
?>