树型结构列出指定目录里所有文件的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 相关文章推荐
PHP新手上路(十)
Oct 09 PHP
粗略计算在线时间,bug:ip相同
Dec 09 PHP
php去除字符串换行符示例分享
Feb 13 PHP
php多功能图片处理类分享(php图片缩放类)
Mar 14 PHP
PHP中把数据库查询结果输出为json格式简单实例
Apr 09 PHP
PHP+ajax分页实例简析
Dec 07 PHP
Zend Framework动作助手Url用法详解
Mar 05 PHP
使用WAMP搭建PHP本地开发环境
May 10 PHP
yii框架redis结合php实现秒杀效果(实例代码)
Oct 26 PHP
php微信公众号开发之音乐信息
Oct 20 PHP
PHP微商城开源代码实例
Mar 27 PHP
PHP isset()及empty()用法区别详解
Aug 29 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
ThinkPHP中URL路径访问与模块控制器之间的关系
2014/08/23 PHP
PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
2014/11/20 PHP
PHP7扩展开发之hello word实现方法详解
2018/01/15 PHP
PDO::lastInsertId讲解
2019/01/29 PHP
php5与php7的区别点总结
2019/10/11 PHP
PNGHandler-借助JS让PNG图在IE下实现透明(包括背景图)
2007/08/31 Javascript
用JavaScript调用WebService的示例
2008/04/07 Javascript
基于JQuery的一句代码实现表格的简单筛选
2010/07/26 Javascript
jQuery EasyUI API 中文文档 可调整尺寸
2011/09/29 Javascript
浅析用prototype定义自己的方法
2013/11/14 Javascript
ExtJS判断IE浏览器类型的方法
2014/02/10 Javascript
jquery+css3问卷答题卡翻页动画效果示例
2016/10/26 Javascript
jQuery源码分析之init的详细介绍
2017/02/13 Javascript
react.js CMS 删除功能的实现方法
2017/04/17 Javascript
Angular.js实现动态加载组件详解
2017/05/28 Javascript
微信小程序wx.request实现后台数据交互功能分析
2017/11/25 Javascript
zTree 树插件实现全国五级地区点击后加载的示例
2018/02/05 Javascript
JS实现520 表白简单代码
2018/05/21 Javascript
在vue中使用vue-echarts-v3的实例代码
2018/09/13 Javascript
详解Vue CLI 3.0脚手架如何mock数据
2018/11/23 Javascript
extjs4图表绘制之折线图实现方法分析
2020/03/06 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
2020/11/07 Javascript
python实现冒泡排序算法的两种方法
2018/03/10 Python
Django实现登录随机验证码的示例代码
2018/06/20 Python
python使用webdriver爬取微信公众号
2018/08/31 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
2018/10/21 Python
pycharm访问mysql数据库的方法步骤
2019/06/18 Python
浅谈Django+Gunicorn+Nginx部署之路
2019/09/11 Python
Python3爬虫中Splash的知识总结
2020/07/10 Python
Stutterheim瑞典:瑞典高级外套时装品牌
2019/06/24 全球购物
迎新晚会主持词
2014/03/24 职场文书
园林专业毕业生自荐信
2014/07/04 职场文书
2014最新毕业证代领委托书
2014/09/26 职场文书
2016年领导干部正风肃纪心得体会
2015/10/09 职场文书
你会写请假条吗?
2019/06/26 职场文书
十大最强岩石系宝可梦,怪颚龙实力最强,第七破坏力很强
2022/03/18 日漫