<?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 } } ?>