Annotation of embedaddon/php/ext/spl/examples/findfile.inc, revision 1.1.1.1
1.1 misho 1: <?php
2:
3: /** @file findfile.inc
4: * @ingroup Examples
5: * @brief class FindFile
6: * @author Marcus Boerger
7: * @date 2003 - 2005
8: *
9: * SPL - Standard PHP Library
10: */
11:
12: if (!class_exists("FindFile", false)) require_once("findfile.inc");
13: if (!class_exists("AppendIterator", false)) require_once("appenditerator.inc");
14:
15: /** @ingroup Examples
16: * @brief Base class to find files
17: * @author Marcus Boerger
18: * @version 1.1
19: *
20: */
21: class FindFile extends FilterIterator
22: {
23: /** @internal filename to find */
24: private $file;
25:
26: /** Construct from path and filename
27: *
28: * @param $path the directory to search in
29: * If path contains ';' then this parameter is split and every
30: * part of it is used as separate directory.
31: * @param $file the name of the files to search fro
32: */
33: function __construct($path, $file)
34: {
35: $this->file = $file;
36: $list = split(PATH_SEPARATOR, $path);
37: if (count($list) <= 1) {
38: parent::__construct(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)));
39: } else {
40: $it = new AppendIterator();
41: foreach($list as $path) {
42: $it->append(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)));
43: }
44: parent::__construct($it);
45: }
46: }
47:
48: /** @return whether the current file matches the given filename
49: */
50: function accept()
51: {
52: return !strcmp($this->current(), $this->file);
53: }
54:
55: /** @return the filename to search for.
56: * @note This may be overloaded and contain a regular expression for an
57: * extended class that uses regular expressions to search.
58: */
59: function getSearch()
60: {
61: return $this->file;
62: }
63: }
64:
65: ?>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>