diff --git a/reference/spl/iterators.xml b/reference/spl/iterators.xml
index 57f74d0f52..53977ea96c 100644
--- a/reference/spl/iterators.xml
+++ b/reference/spl/iterators.xml
@@ -13,7 +13,6 @@
Undocumented Iterators
- RecursiveFilterIterator
RecursiveTreeIterator
@@ -21,7 +20,6 @@
@@ -42,6 +40,7 @@
&reference.spl.recursivearrayiterator;
&reference.spl.recursivecachingiterator;
&reference.spl.recursivedirectoryiterator;
+ &reference.spl.recursivefilteriterator;
&reference.spl.recursiveiteratoriterator;
&reference.spl.recursiveregexiterator;
&reference.spl.regexiterator;
diff --git a/reference/spl/recursivefilteriterator.xml b/reference/spl/recursivefilteriterator.xml
new file mode 100644
index 0000000000..7e3252497c
--- /dev/null
+++ b/reference/spl/recursivefilteriterator.xml
@@ -0,0 +1,94 @@
+
+
+
+
+
+ The RecursiveFilterIterator class
+ RecursiveFilterIterator
+
+
+
+
+
+ &reftitle.intro;
+
+ This abstract iterator filters out unwanted values for a RecursiveIterator.
+ This class should be extended to implement custom filters.
+ The RecursiveFilterIterator::accept() must be implemented in the subclass.
+
+
+
+
+
+ &reftitle.classsynopsis;
+
+
+
+ RecursiveFilterIterator
+
+
+
+
+ RecursiveFilterIterator
+
+
+
+ extends
+ FilterIterator
+
+
+
+ Iterator
+
+
+
+ Traversable
+
+
+
+ OuterIterator
+
+
+
+ RecursiveIterator
+
+
+
+
+ Methods
+
+
+ Inherited methods
+
+
+
+
+
+
+
+
+
+ &reference.spl.entities.recursivefilteriterator;
+
+
+
+
diff --git a/reference/spl/recursivefilteriterator/construct.xml b/reference/spl/recursivefilteriterator/construct.xml
new file mode 100644
index 0000000000..2f609f554a
--- /dev/null
+++ b/reference/spl/recursivefilteriterator/construct.xml
@@ -0,0 +1,163 @@
+
+
+
+
+
+ RecursiveFilterIterator::__construct
+ Create a RecursiveFilterIterator from a RecursiveIterator
+
+
+
+ &reftitle.description;
+
+ RecursiveFilterIterator::__construct
+ RecursiveIteratoriterator
+
+
+ Create a RecursiveFilterIterator from a RecursiveIterator.
+
+
+
+
+
+ &reftitle.parameters;
+
+
+
+ iterator
+
+
+ The RecursiveIterator to be filtered.
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ &return.void;
+
+
+
+
+ &reftitle.examples;
+
+
+ Basic RecursiveFilterIterator example
+
+hasChildren() || (strpos($this->current(), "test") !== FALSE);
+ }
+}
+
+$arrary = array("test1", array("taste2", "test3", "test4"), "test5");
+$iterator = new RecursiveArrayIterator($array);
+$filter = new TestsOnlyFilter($iterator);
+
+foreach(new RecursiveIteratorIterator($filter) as $key => $value)
+{
+ echo $value . "\n";
+}
+?>
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+ RecursiveFilterIterator example
+
+word = $word;
+ parent::__construct($rit);
+ }
+
+ public function accept() {
+ return $this->hasChildren() OR strpos($this->current(), $this->word) === 0;
+ }
+
+ public function getChildren() {
+ return new self($this->getInnerIterator()->getChildren(), $this->word);
+ }
+}
+
+$array = array("test1", array("taste2", "test3", "test4"), "test5");
+$iterator = new RecursiveArrayIterator($array);
+$filter = new StartsWithFilter($iterator, "test");
+
+foreach(new RecursiveIteratorIterator($filter) as $key => $value)
+{
+ echo $value . "\n";
+}
+?>
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ RecursiveFilterIterator::getChildren
+ RecursiveFilterIterator::hasChildren
+ FilterIterator::accept
+
+
+
+
+
+
+
diff --git a/reference/spl/recursivefilteriterator/getchildren.xml b/reference/spl/recursivefilteriterator/getchildren.xml
new file mode 100644
index 0000000000..68950ed560
--- /dev/null
+++ b/reference/spl/recursivefilteriterator/getchildren.xml
@@ -0,0 +1,64 @@
+
+
+
+
+
+ RecursiveFilterIterator::getChildren
+ Return the inner iterator's children contained in a RecursiveFilterIterator
+
+
+
+ &reftitle.description;
+
+ public voidRecursiveFilterIterator::getChildren
+
+
+
+ Return the inner iterator's children contained in a RecursiveFilterIterator.
+
+
+
+
+ &reftitle.parameters;
+ &no.function.parameters;
+
+
+
+ &reftitle.returnvalues;
+
+ Returns a RecursiveFilterIterator containing the inner iterator's children.
+
+
+
+
+ &reftitle.seealso;
+
+
+ RecursiveFilterIterator::hasChildren
+ RecursiveIterator::getChildren
+
+
+
+
+
+
+
diff --git a/reference/spl/recursivefilteriterator/haschildren.xml b/reference/spl/recursivefilteriterator/haschildren.xml
new file mode 100644
index 0000000000..5b5801e4bd
--- /dev/null
+++ b/reference/spl/recursivefilteriterator/haschildren.xml
@@ -0,0 +1,65 @@
+
+
+
+
+
+ RecursiveFilterIterator::hasChildren
+ Check whether the inner iterator's current element has children
+
+
+
+ &reftitle.description;
+
+ public voidRecursiveFilterIterator::hasChildren
+
+
+
+ Check whether the inner iterator's current element has children.
+
+
+
+
+
+ &reftitle.parameters;
+ &no.function.parameters;
+
+
+
+ &reftitle.returnvalues;
+
+ &true; if the inner iterator has children, otherwise &false;
+
+
+
+
+ &reftitle.seealso;
+
+
+ RecursiveFilterIterator::getChildren
+ RecursiveIterator::hasChildren
+
+
+
+
+
+
+