Annotation of embedaddon/php/ext/spl/examples/findfile.inc, revision 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>