©
This document uses PHP Chinese website manual Release
(PHP 5 >= 5.2.0)
RecursiveRegexIterator::__construct — Creates a new RecursiveRegexIterator.
$iterator
, string $regex
[, int $mode
= self::MATCH
[, int $flags
= 0
[, int $preg_flags
= 0
]]] )Creates a new regular expression iterator.
iterator
The recursive iterator to apply this regex filter to.
regex
The regular expression to match.
mode
Operation mode, see RegexIterator::setMode() for a list of modes.
flags
Special flags, see RegexIterator::setFlags() for a list of available flags.
preg_flags
The regular expression flags. These flags depend on the operation mode parameter:
operation mode | available flags |
---|---|
RecursiveRegexIterator::ALL_MATCHES | See preg_match_all() . |
RecursiveRegexIterator::GET_MATCH | See preg_match() . |
RecursiveRegexIterator::MATCH | See preg_match() . |
RecursiveRegexIterator::REPLACE | none. |
RecursiveRegexIterator::SPLIT | See preg_split() . |
Example #1 RecursiveRegexIterator::__construct() example
Creates a new RegexIterator that filters all strings that start with 'test'.
<?php
$rArrayIterator = new RecursiveArrayIterator (array( 'test1' , array( 'tet3' , 'test4' , 'test5' )));
$rRegexIterator = new RecursiveRegexIterator ( $rArrayIterator , '/^test/' ,
RecursiveRegexIterator :: ALL_MATCHES );
foreach ( $rRegexIterator as $key1 => $value1 ) {
if ( $rRegexIterator -> hasChildren ()) {
// print all children
echo "Children: " ;
foreach ( $rRegexIterator -> getChildren () as $key => $value ) {
echo $value . " " ;
}
echo "\n" ;
} else {
echo "No children\n" ;
}
}
?>
以上例程的输出类似于:
No children Children: test4 test5
[#1] SongoQ [2009-10-27 23:22:18]
RecursiveRegexIterator::ALL_MATCHES List all subdirectories and files.
<?php
$a = new RecursiveRegexIterator( new RecursiveDirectoryIterator(
'/home/songoq' ), '/mydir/i', RecursiveRegexIterator::ALL_MATCHES );
foreach( new RecursiveIteratorIterator( $a ) as $s )
{
echo $s."\n";
}