(PHP 5 >= 5.1.2, PHP 7, PHP 8)
RecursiveDirectoryIterator::__construct — Конструктор класса RecursiveDirectoryIterator
$directory, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO)
Создаёт новый объект класса RecursiveDirectoryIterator(),
используя заданный путь directory.
directoryПуть к директории, по которой будет осуществляться навигация.
flagsМожно установить несколько флагов от которых будет зависеть поведение некоторых методов. Список возможных флагов можно найти на странице Предопределённых констант класса FilesystemIterator. Флаги можно задать позднее методом FilesystemIterator::setFlags().
Выбрасывает исключение UnexpectedValueException,
если директория directory не существует.
Выбрасывает исключение ValueError,
если параметр directory содержит пустую строку.
| Версия | Описание |
|---|---|
| 8.0.0 |
Теперь выбрасывает исключение ValueError,
если параметр directory содержит пустую строку.
ранее выбрасывалось исключение RuntimeException.
|
Пример #1 Пример использования RecursiveDirectoryIterator
<?php
$directory = '/tmp';
$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory));
$it->rewind();
while($it->valid()) {
if (!$it->isDot()) {
echo 'Имя файла: ' . $it->getSubPathName() . "\n";
echo 'Поддиректория: ' . $it->getSubPath() . "\n";
echo 'Ключ: ' . $it->key() . "\n\n";
}
$it->next();
}
?>Вывод приведённого примера будет похож на:
Имя файла: fruit/apple.xml Поддиректория: fruit Ключ: /tmp/fruit/apple.xml Имя файла: stuff.xml Поддиректория: Ключ: /tmp/stuff.xml Имя файла: veggies/carrot.xml Поддиректория: veggies Ключ: /tmp/veggies/carrot.xml