Получает элемент каталога по его дескриптору


(PHP 4, PHP 5)

readdirПолучает элемент каталога по его дескриптору

Описание

string readdir ([ resource $dir_handle ] )

Возвращает имя следующего по порядку элемента каталога. Элементы возвращаются в том порядке, в котором они хранятся в файловой системе.

Список параметров

dir_handle

Дескриптор каталога (resource), ранее открытый функцией opendir(). Если дескриптор каталога не указан, используется последний дескриптор открытый функцией opendir().

Возвращаемые значения

Возвращает имя элемента каталога в случае успеха или FALSE в случае возникновения ошибки.

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #1 Вывести список всех элементов каталога

Обратите внимание на способ проверки значения, возвращаемого функцией readdir() в приведенном ниже примере. В этом примере осуществляется явная проверка значения на идентичность (выражения идентичны, когда они равны и являются значениями одного типа - за более подробной информацией обратитесь к главе " Операторы сравнения") значению FALSE, поскольку в ином случае, любой элемент каталога, чье имя может быть преобразовано к FALSE, остановит цикл (например, элемент с именем "0").

<?php

if ($handle opendir('/path/to/files')) {
    echo 
"Дескриптор каталога: $handle\n";
    echo 
"Записи:\n";

    
/* Именно этот способ чтения элементов каталога является правильным. */
    
while (false !== ($entry readdir($handle))) {
        echo 
"$entry\n";
    }

    
/* Это НЕВЕРНЫЙ способ обхода каталога. */
    
while ($entry readdir($handle)) {
        echo 
"$entry\n";
    }

    
closedir($handle);
}
?>

Пример #2 Получить список элементов в текущем каталоге и отбросить элементы с именами . и ..

<?php
if ($handle opendir('.')) {
    while (
false !== ($entry readdir($handle))) {
        if (
$entry != "." && $entry != "..") {
            echo 
"$entry\n";
        }
    }
    
closedir($handle);
}
?>

Смотрите также

  • is_dir() - Определяет, является ли имя файла директорией
  • glob() - Находит файловые пути, совпадающие с шаблоном
  • opendir() - Открывает дескриптор каталога
  • scandir() - Получает список файлов и каталогов, расположенных по указанному пути