Annotation of embedaddon/php/ext/spl/examples/keyfilter.inc, revision 1.1.1.1
1.1 misho 1: <?php
2:
3: /** @file keyfilter.inc
4: * @ingroup Examples
5: * @brief class KeyFilter
6: * @author Marcus Boerger
7: * @date 2003 - 2005
8: *
9: * SPL - Standard PHP Library
10: */
11:
12: /** @ingroup Examples
13: * @brief Regular expression filter for string iterators
14: * @author Marcus Boerger
15: * @version 1.1
16: *
17: * Instances of this class act as a filter around iterators whose elements
18: * are strings. In other words you can put an iterator into the constructor
19: * and the instance will only return elements which match the given regular
20: * expression.
21: */
22: class KeyFilter extends FilterIterator
23: {
24: /** @internal regular exoression used as filter */
25: private $regex;
26:
27: /**
28: * Constructs a filter around an iterator whose elemnts are strings.
29: * If the given iterator is of type spl_sequence then its rewind()
30: * method is called.
31: *
32: * @param it Object that implements at least spl_forward
33: * @param regex Regular expression used as a filter.
34: */
35: function __construct(Iterator $it, $regex)
36: {
37: parent::__construct($it);
38: $this->regex = $regex;
39: }
40:
41: /** \return whether the current key mathes the regular expression
42: */
43: function accept()
44: {
45: return ereg($this->regex, $this->getInnerIterator()->key());
46: }
47:
48: /** @return regular expression used as filter
49: */
50: function getRegex()
51: {
52: return $this->regex;
53: }
54:
55: /**
56: * hidden __clone
57: */
58: protected function __clone()
59: {
60: // disallow clone
61: }
62: }
63:
64: ?>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>