树型结构列出指定目录里所有文件的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 相关文章推荐
基于mysql的论坛(3)
Oct 09 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
May 15 PHP
基于PHP技术开发客服工单系统
Jan 06 PHP
YII Framework框架教程之安全方案详解
Mar 14 PHP
Zend Studio使用技巧两则
Apr 01 PHP
php简单实现批量上传图片的方法
May 09 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
Sep 26 PHP
php注册审核重点解析(数据访问)
May 23 PHP
PHP+Ajax简单get验证操作示例
Mar 02 PHP
详解PHP神奇又有用的Trait
Mar 25 PHP
PHP面向对象程序设计之构造方法和析构方法详解
Jun 13 PHP
thinkphp5 模型实例化获得数据对象的教程
Oct 18 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 cookie 作用范围?不要在当前页面使用你的cookie
2009/03/24 PHP
PHP简洁函数小结
2011/08/12 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
2015/02/12 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
2020/05/02 PHP
jQuery 处理网页内容的实现代码
2010/02/15 Javascript
js iframe跨域访问(同主域/非同主域)分别深入介绍
2013/01/24 Javascript
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
2013/08/15 Javascript
js实现连个数字相加而不是拼接的方法
2014/02/23 Javascript
JS继承用法实例分析
2015/02/05 Javascript
JS实现文字向下滚动完整实例
2015/02/06 Javascript
javascript实现网页字符定位的方法
2015/07/14 Javascript
js实现模糊匹配功能
2017/02/15 Javascript
JS实现十字坐标跟随鼠标效果
2017/12/25 Javascript
nodejs中用npm初始化来创建package.json的实例讲解
2018/10/10 NodeJs
vue路由中前进后退的一些事儿
2019/05/18 Javascript
基于layPage插件实现两种分页方式浅析
2019/07/27 Javascript
Vue数字输入框组件的使用方法
2019/10/19 Javascript
基于Cesium绘制抛物弧线
2020/11/18 Javascript
关于better-scroll插件的无法滑动bug(2021通过插件解决)
2021/03/01 Javascript
常见的在Python中实现单例模式的三种方法
2015/04/08 Python
以911新闻为例演示Python实现数据可视化的教程
2015/04/23 Python
python通过加号运算符操作列表的方法
2015/07/28 Python
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
Python函数装饰器实现方法详解
2018/12/22 Python
Django REST framework 视图和路由详解
2019/07/19 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
2020/12/16 Python
Linux内核产生并发的原因
2012/07/13 面试题
小学生新学期寄语
2014/01/19 职场文书
商业房地产广告语
2014/03/13 职场文书
古汉语文学求职信范文
2014/03/16 职场文书
分公司负责人任命书
2014/06/04 职场文书
校园元旦活动总结
2014/07/09 职场文书
教师党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
学校运动会报道稿
2014/09/23 职场文书
培训后的感想
2015/08/07 职场文书
python图像处理基本操作总结(PIL库、Matplotlib及Numpy)
2021/06/08 Python