Recursive directory/file listing, filteres ".svn":
<?php
class MyRecursiveFilterIterator extends RecursiveFilterIterator {
public static $FILTERS = array(
'.svn',
);
public function accept() {
return !in_array(
$this->current()->getFilename(),
self::$FILTERS,
true
);
}
}
$dirItr = new RecursiveDirectoryIterator('/sample/path');
$filterItr = new MyRecursiveFilterIterator($dirItr);
$itr = new RecursiveIteratorIterator($filterItr, RecursiveIteratorIterator::SELF_FIRST);
foreach ($itr as $filePath => $fileInfo) {
echo $fileInfo->getFilename() . PHP_EOL;
}
?>
PHP.mk документација
RecursiveFilterIterator
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
class.recursivefilteriterator.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + превод во позадина
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
class.recursivefilteriterator.php
RecursiveFilterIterator
Референца за `class.recursivefilteriterator.php` со подобрена типографија и навигација.
Класата RecursiveFilterIterator
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
Вовед
Овој апстрактен итератор ги филтрира непосакуваните вредности за еден RecursiveIterator. Оваа класа треба да се прошири за да се имплементираат прилагодени филтри. На (PHP 5 >= 5.1.0, PHP 7, PHP 8) мора да се имплементира во подкласата.
Синопсис на класата
/* Методи */
/* Наследени методи */
}Содржина
- RecursiveFilterIterator::__construct — Создадете RecursiveFilterIterator од RecursiveIterator
- RecursiveFilterIterator::getChildren — Вратете ги децата на внатрешниот итератор содржани во RecursiveFilterIterator
- RecursiveFilterIterator::hasChildren — Проверете дали тековниот елемент на внатрешниот итератор има деца
Белешки од корисници 2 забелешки
lemats ¶
пред 14 години
Расел Дијас ¶
пред 15 години
I had to create a filter to get values greater than a certain number in a multidimensional array.
Hope someone else finds it helpful:
<?php
class GreaterThanFilter extends RecursiveFilterIterator {
protected $limit;
public function __construct(RecursiveIterator $recursiveIter, $limit) {
$this->limit = $limit;
parent::__construct($recursiveIter);
}
public function accept() {
return $this->hasChildren() || strlen($this->current()) >= $this->limit;
}
public function getChildren() {
return new self($this->getInnerIterator()->getChildren(), $this->limit);
}
}
$iter = new RecursiveArrayIterator($array);
$filter = new GreaterThanFilter($iter, 5);
foreach(new RecursiveIteratorIterator($filter) as $key => $value)
{
echo $value . "\n";
}
?>