首页 > php代码 > php递归用法与递归目录实例

php递归用法与递归目录实例

在php中递归算法是我们比得不多的一种数据遍历方式了,下面我来给大家介绍一下利用递归来做一下用的东西吧。

看一个简单的递归实例

例1

<?php
function demo($a) {
    static $sum = 1;
    if ($a > 1) {
        $sum*= $a;
        demo(--$a);
    } else {
        $a = $sum;
    }
    return $sum;
}
echo demo(10);
?>

例2

遍历目录

<?php
class listdir {
    var $depth;
    var $dirname;
    var $list;
    var $tostring;
    function listdir($dir) {
        $this->dirname = $dir;
        $this->depth = 0;
        $this->tostring = "";
    }
    //把结果保存进多维数组
    function getlist($dir = "") {
        if ($dir == "") $dir = $this->dirname;
        $d = @dir($dir);
        while (false !== ($item = $d->read())) {
            if ($item != "." && $item != "..") {
                $path = $dir . "/" . $item;
                if (is_dir($path)) {
                    $this->depth+= 1;
                    $this->getlist($path);
                } else {
                    $this->list[$this->depth][] = $item;
                }
            }
        }
        $this->list[$this->depth]['directory'] = $dir;
        $this->depth-= 1;
        $d->close();
        return $this->list;
    }
    //字符窜化结果
    function tostring($dir = "") {
        if ($dir == "") $dir = $this->dirname;
        $d = @dir($dir);
        $this->tostring.= "<UL>n";
        $this->tostring.= "Directory:" . $dir . "n";
        while (false !== ($item = $d->read())) {
            if ($item != "." && $item != "..") {
                $path = $dir . "/" . $item;
                if (is_dir($path)) {
                    $this->depth+= 1;
                    $this->tostring($path);
                } else {
                    $this->tostring.= "<LI>" . $item . "</LI>n";
                }
            }
        }
        $this->depth-= 1;
        $d->close();
        $this->tostring.= "</UL>n";
        return $this->tostring;
    }
}
$wapdir = "jquery";
$d = new listdir($wapdir);
echo $d->tostring();
?>

输出结果:

<UL>
Directory:jquery
<LI>jquery-1.3.2.js</LI>
<LI>jquery-1.3.2.min.js</LI>
<LI>jquery-1.3.2-vsdoc2.js</LI>
<LI>test.html</LI>
<LI>common.js</LI>
<UL>
Directory:jquery/d
<LI>common.js</LI>
<LI>jquery-1.3.2.js</LI>
</UL>
</UL>


本文地址:http://www.phprm.com/code/52974.html

转载随意,但请附上文章地址:-)

标签:遍历目录

相关文章

发表留言