array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.readdir.php', 1 => 'readdir', ), 'up' => array ( 0 => 'ref.dir.php', 1 => 'Функции для работы с каталогами', ), 'prev' => array ( 0 => 'function.opendir.php', 1 => 'opendir', ), 'next' => array ( 0 => 'function.rewinddir.php', 1 => 'rewinddir', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', '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 — Получает элемент каталога по его дескриптору
Возвращает имя следующего по порядку элемента каталога. Элементы возвращаются в том порядке, в котором они хранятся в файловой системе.
Возвращает имя элемента каталога в случае успешного выполнения или false
, если возникла ошибка.
Функция
возвращает как логическое значение false
,
так и нелогическое значение, которое приводится к false
.
Прочитайте раздел
«Логический тип»,
чтобы получить дополнительную информацию.
Используйте оператор ===
для проверки значения, которое возвращает функция.
Версия | Описание |
---|---|
8.0.0 |
dir_handle теперь допускает значение null.
|
Пример #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);
}
?>