mirror of
https://github.com/php/php-src.git
synced 2024-10-22 08:47:29 +00:00
64 lines
1.4 KiB
PHP
Executable File
64 lines
1.4 KiB
PHP
Executable File
<?php
|
|
|
|
/** @file keyfilter.inc
|
|
* @ingroup Examples
|
|
* @brief class KeyFilter
|
|
* @author Marcus Boerger
|
|
* @date 2003 - 2005
|
|
*
|
|
* SPL - Standard PHP Library
|
|
*/
|
|
|
|
/** @ingroup Examples
|
|
* @brief Regular expression filter for string iterators
|
|
* @author Marcus Boerger
|
|
* @version 1.1
|
|
*
|
|
* Instances of this class act as a filter around iterators whose elements
|
|
* are strings. In other words you can put an iterator into the constructor
|
|
* and the instance will only return elements which match the given regular
|
|
* expression.
|
|
*/
|
|
class KeyFilter extends FilterIterator
|
|
{
|
|
/** @internal regular exoression used as filter */
|
|
private $regex;
|
|
|
|
/**
|
|
* Constructs a filter around an iterator whose elemnts are strings.
|
|
* If the given iterator is of type spl_sequence then its rewind()
|
|
* method is called.
|
|
*
|
|
* @param it Object that implements at least spl_forward
|
|
* @param regex Regular expression used as a filter.
|
|
*/
|
|
function __construct(Iterator $it, $regex)
|
|
{
|
|
parent::__construct($it);
|
|
$this->regex = $regex;
|
|
}
|
|
|
|
/** \return whether the current key mathes the regular expression
|
|
*/
|
|
function accept()
|
|
{
|
|
return ereg($this->regex, $this->getInnerIterator()->key());
|
|
}
|
|
|
|
/** @return regular expression used as filter
|
|
*/
|
|
function getRegex()
|
|
{
|
|
return $this->regex;
|
|
}
|
|
|
|
/**
|
|
* hidden __clone
|
|
*/
|
|
protected function __clone()
|
|
{
|
|
// disallow clone
|
|
}
|
|
}
|
|
|
|
?>
|