readdir

(PHP 4, PHP 5, PHP 7)

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

Описание

readdir ( resource $dir_handle = ? ) : string|false

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

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

dir_handle

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

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

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

Внимание

Эта функция может возвращать как логическое значение 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() - Получает список файлов и каталогов, расположенных по указанному пути