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 — Constructs a RecursiveDirectoryIterator
= NULL
$directory, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO)
Конструира RecursiveDirectoryIterator()
for the provided directory.
Параметри
directory-
The path of the directory to be iterated over.
flags-
Flags may be provided which will affect the behavior of some methods. A list of the flags can found under FilesystemIterator predefined constants. They can also be set later with Ги добива знаменцата за ракување, како што е поставено во.
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::__construct() - Конструира нов итератор на датотечниот систем
- RecursiveIteratorIterator::__construct() - Проверете дали тековната позиција е валидна
- FilesystemIterator predefined constants
Белешки од корисници 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
);
?>