You can use RecursiveDirectoryIterator::FOLLOW_SYMLINKS as a flag to the constructor to have RecursiveDirectoryIterator follow symlinks, which it does not do by default.
[EDIT BY danbrown AT php DOT net on 16-JUL-2012: Contains a typofix provided by (lightrekky AT gmail DOT com) in note #109280 on 02-JUL-2012.]RecursiveDirectoryIterator::__construct
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
RecursiveDirectoryIterator::__construct
Референца за `recursivedirectoryiterator.construct.php` со подобрена типографија и навигација.
RecursiveDirectoryIterator::__construct
(PHP 5 >= 5.1.2, PHP 7, PHP 8)
RecursiveDirectoryIterator::__construct — Конструира RecursiveDirectoryIterator
= NULL
$directory, int $flags (PHP 5 >= 5.1.2, PHP 7, PHP 8))
Конструира RecursiveDirectoryIterator()
за даденото directory.
Параметри
directory-
Патеката на директориумот што треба да се итерира.
flags-
Може да се обезбедат знаменца што ќе влијаат на однесувањето на некои методи. Список со знаменцата може да се најде под предодредени константи FilesystemIterator. Тие исто така може да се постават подоцна со Ги добива знаменцата за ракување, како што е поставено во.
Errors/Exceptions
Фрла UnexpectedValueException
ако directory веќе постои. На Windows, функцијата исто така откажува и издава
Фрла ValueError
ако directory е празен стринг.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.0.0 |
Сега фрла ValueError if
directory е празен стринг; претходно фрлаше RuntimeException.
|
Примери
Пример #1 RecursiveDirectoryIterator example
<?php
$directory = '/tmp';
$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory));
$it->rewind();
while($it->valid()) {
if (!$it->isDot()) {
echo 'SubPathName: ' . $it->getSubPathName() . "\n";
echo 'SubPath: ' . $it->getSubPath() . "\n";
echo 'Key: ' . $it->key() . "\n\n";
}
$it->next();
}
?>Горниот пример ќе прикаже нешто слично на:
SubPathName: fruit/apple.xml SubPath: fruit Key: /tmp/fruit/apple.xml SubPathName: stuff.xml SubPath: Key: /tmp/stuff.xml SubPathName: veggies/carrot.xml SubPath: veggies Key: /tmp/veggies/carrot.xml
Види Исто така
- FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS - Конструира нов итератор на датотечниот систем
- = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO - Проверете дали тековната позиција е валидна
- предодредени константи FilesystemIterator
Белешки од корисници 2 забелешки
The two default flags are zero (virtual) as with my PHP versions (5.3 and 5.4). Which means you can not check if those are set or not with the & bitwise operator:
<?php
// CURRENT_AS_FILEINFO (0)
// KEY_AS_PATHNAME (0)
### always FALSE ###
$directoryIterator->getFlags() & RecursiveDirectoryIterator::CURRENT_AS_FILEINFO;
?>
But this also allows that you can use other flags right ahead without repeating the default ones:
<?php
new RecursiveDirectoryIterator(
'.',
FilesystemIterator::UNIX_PATHS
);
?>
There is no need to repeat the default flags. Please note that this is different to FilesystemIterator which has as well the SKIP_DOTS flag as default which is non-zero:
<?php
new RecursiveDirectoryIterator(
'.',
FilesystemIterator::SKIP_DOTS
| FilesystemIterator::UNIX_PATHS
);
?>