树型结构列出指定目录里所有文件的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传输数据的代码
Nov 13 PHP
发一个php简单的伪原创程序,配合商城采集用的
Oct 12 PHP
php循环检测目录是否存在并创建(循环创建目录)
Jan 06 PHP
适用于php-5.2 的 php.ini 中文版[金步国翻译]
Apr 17 PHP
PHP及Zend Engine的线程安全模型分析
Nov 10 PHP
php curl常见错误:SSL错误、bool(false)
Dec 28 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
Sep 09 PHP
PHP常用算法和数据结构示例(必看篇)
Mar 15 PHP
PHP简单实现遍历目录下特定文件的方法小结
May 22 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
Jun 09 PHP
php实现的mongoDB单例模式操作类
Jan 20 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
Mar 09 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对象递归引用造成内存泄漏分析
2014/08/28 PHP
php自定义时间转换函数示例
2016/12/07 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
学习js在线html(富文本,所见即所得)编辑器
2012/12/18 Javascript
jQuery判断密码强度实现思路及代码
2013/04/24 Javascript
在页面加载完成后通过jquery给多个span赋值
2014/05/21 Javascript
angularjs 处理多个异步请求方法汇总
2015/01/06 Javascript
浅谈JavaScript数据类型
2015/03/03 Javascript
jQuery根据元素值删除数组元素的方法
2015/06/24 Javascript
jquery SweetAlert插件实现响应式提示框
2015/08/18 Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
2016/02/16 Javascript
javascript实现延时显示提示框特效代码
2016/04/27 Javascript
BootStrap的alert提示框的关闭后再显示怎么解决
2016/05/17 Javascript
全面了解js中的script标签
2016/07/04 Javascript
JavaScript动态添加事件之事件委托
2016/07/12 Javascript
基于jQuery中ajax的相关方法汇总(必看篇)
2017/11/08 jQuery
使用p5.js实现动态GIF图片临摹重现
2019/10/23 Javascript
js实现提交前对列表数据的增删改查
2020/01/16 Javascript
js 数组当前行添加数据方法详解
2020/07/28 Javascript
python使用nntp读取新闻组内容的方法
2015/05/08 Python
python使用xslt提取网页数据的方法
2018/02/23 Python
python return逻辑判断表达式实现解析
2019/12/02 Python
Python headers请求头如何实现快速添加
2020/11/03 Python
HTML5如何使用SVG的方法示例
2019/01/11 HTML / CSS
香港最大的洋酒零售连锁店:屈臣氏酒窖(Watson’s Wine)
2018/12/10 全球购物
法国二手MacBook销售网站:Okamac
2019/03/18 全球购物
英国手机零售商:Metrofone
2019/03/18 全球购物
设计总监岗位职责
2013/12/07 职场文书
餐饮加盟计划书
2014/01/10 职场文书
七年级英语教学反思
2014/01/15 职场文书
广告学专业自荐信范文
2014/02/24 职场文书
设计专业自荐信
2014/06/19 职场文书
社会体育专业大学生职业生涯规划书
2014/09/17 职场文书
小升初自荐信怎么写
2015/03/26 职场文书
导游词之新疆-喀纳斯
2019/10/10 职场文书
解决jupyter notebook启动后没有token的坑
2021/04/24 Python