树型结构列出指定目录里所有文件的PHP类


Posted in PHP onOctober 09, 2006

<?
//以树型结构列出指定目录里的所有文件,如果你想知道自己某个目录里有哪些子目录和文件,可以调用这个类来查看,很方便的。

    # 演示的例子:
    $t = new TreeClimber( "asp" ); //新建物件,设置需要列出的目录:在此为asp目录
    echo arrayValuesToString( $t->getFileList( $t->getPath() ), "<BR>\n" );

    function arrayValuesToString( $ar, $nl="", $dolast=true ) {//调用函数
    $str = "";
    reset( $ar );
    $size = sizeof( $ar );
    $i = 1;
    while( list( $k, $v ) = each( $ar ) ) {
    if ( $dolast == false ) {
    if ( $i < $size ) {
        $str .= $ar[$k].$nl;
    }
    else {
        $str .= $ar[$k];
    }
    }
    else {
    $str .= $ar[$k].$nl;
    }
    $i++;
    }
    return $str;
    }
    ?>
    <?
    //以下为类文件
    class TreeClimber {
    var $path;
    var $fileList = array();
    function TreeClimber( $path = "." ) {
    $this->path = $path;
    }

    # 存取路径
    function getPath() { return $this->path; }
    function setPath( $v ) { $this->path = $v; }

    // 返回指定目录里的文件列表,如果没有指定目录,将使用当前目录
    //如果不能打开目录(可能没权限或目录不存在,将返回为空
    //以递归方式进行
     function getFileList( $dirname=null, $returnDirs=false, $reset=true ) {
    if ( $dirname == null ) { $dirname = $this->path; }
    # else { $this->setPath( $dirname ); }
    # dout( "Recursing into $dirname..." );
    if ( $reset ) {  
    $this->fileList = array();
    }
    $dir = opendir( $dirname );
    if ( ! $dir ) {  
    print( "<B><FONT COLOR=#FF0000>注意: TreeClimber.getFileList( $dirname ): 不能打开 $dirname!</FONT></B>" );
    return null;  
    }
    while( $file = readdir( $dir ) ) {
    if ( ereg( "^\.$", $file ) || ereg( "^\.\.$", $file ) ) continue;
    if ( is_dir( $dirname."/".$file ) ) {
    $this->getFileList( $dirname."/".$file, $returnDirs, false );
    if ( $returnDirs ) { $this->fileList[] = $dirname."/".$file;}
    }
    else { $this->fileList[] = $dirname."/".$file; }
    }
    sort( $this->fileList );
    return $this->fileList;
    }
    } //至此类结束
    ?>

PHP 相关文章推荐
我的论坛源代码(二)
Oct 09 PHP
PHP setcookie() cannot modify header information 的解决方法
Jan 09 PHP
基于MySQL分区性能的详细介绍
May 02 PHP
php使用ICQ网关发送手机短信
Oct 30 PHP
ThinkPHP的截取字符串函数无法显示省略号的解决方法
Jun 25 PHP
ThinkPHP自动转义存储富文本编辑器内容导致读取出错的解决方法
Aug 08 PHP
浅谈PHP值mysql操作类
Jun 29 PHP
php cookie工作原理与实例详解
Jul 18 PHP
PHP实现上一篇下一篇的方法实例总结
Sep 22 PHP
php生成条形码的图片的实例详解
Sep 13 PHP
PHP开发的文字水印,缩略图,图片水印实现类与用法示例
Apr 12 PHP
php设计模式之单例模式用法经典示例分析
Sep 20 PHP
搜索和替换文件或目录的一个好类--很实用
Oct 09 #PHP
非常好的php目录导航文件代码
Oct 09 #PHP
PHP4.04简明安装
Oct 09 #PHP
利用 window_onload 实现select默认选择
Oct 09 #PHP
将RTF格式的文件转成HTML并在网页中显示的代码
Oct 09 #PHP
简单的用PHP编写的导航条程序
Oct 09 #PHP
信用卡效验程序
Oct 09 #PHP
You might like
PHP无限分类的类
2007/01/02 PHP
实用函数10
2007/11/08 PHP
PHP中__FILE__、dirname与basename用法实例分析
2014/12/01 PHP
php网页病毒清除类
2014/12/08 PHP
PHP安全上传图片的方法
2015/03/21 PHP
PHP静态延迟绑定和普通静态效率的对比
2017/10/20 PHP
多个表单中如何获得这个文件上传的网址实现js代码
2013/03/25 Javascript
设为首页和收藏的Javascript代码(亲测兼容IE,Firefox,chrome等浏览器)
2013/11/18 Javascript
JavaScript实现的GBK、UTF8字符串实际长度计算函数
2014/08/27 Javascript
javascript实现的闭包简单实例
2015/07/17 Javascript
JavaScript动态插入CSS的方法
2015/12/10 Javascript
浅谈Node.js:Buffer模块
2016/12/05 Javascript
JavaScript实现的原生态兼容IE6可调可控滚动文字功能详解
2017/09/19 Javascript
jQuery实现的简单获取索引功能示例
2018/06/04 jQuery
浅谈vue项目4rs vue-router上线后history模式遇到的坑
2018/09/27 Javascript
ES6模板字符串和标签模板的应用实例分析
2019/06/25 Javascript
微信小程序左滑删除实现代码实例
2019/09/16 Javascript
vue element-ui实现input输入框金额数字添加千分位
2019/12/29 Javascript
Python元组操作实例分析【创建、赋值、更新、删除等】
2017/07/24 Python
Scrapy的简单使用教程
2017/10/24 Python
Python操作mongodb的9个步骤
2018/06/04 Python
python迭代dict的key和value的方法
2018/07/06 Python
从运行效率与开发效率比较Python和C++
2018/12/14 Python
Python寻找路径和查找文件路径的示例
2019/07/10 Python
python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例
2019/08/27 Python
python中tab键是什么意思
2020/06/18 Python
python中altair可视化库实例用法
2021/01/26 Python
上班迟到检讨书
2014/01/10 职场文书
高三生物教学反思
2014/01/25 职场文书
演讲稿的格式及范文
2014/08/22 职场文书
运动会演讲稿300字
2014/08/25 职场文书
党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
2015年119消防宣传日活动总结
2015/03/24 职场文书
公司保洁员管理制度
2015/08/04 职场文书
Python中的xlrd模块使用整理
2021/06/15 Python
用Python爬取英雄联盟的皮肤详细示例
2021/12/06 Python