树型结构列出指定目录里所有文件的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控制用户的浏览器--ob*函数的使用说明
Mar 16 PHP
php cache类代码(php数据缓存类)
Apr 15 PHP
PHP 数据结构 算法 三元组 Triplet
Jul 02 PHP
PHP中的output_buffering详细介绍
Sep 27 PHP
PHP实现的下载远程图片自定义函数分享
Jan 28 PHP
ThinkPHP3.2.3数据库设置新特性
Mar 05 PHP
php程序内部post数据的方法
Mar 31 PHP
php+ajax制作无刷新留言板
Oct 27 PHP
Zend Framework实现Zend_View集成Smarty模板系统的方法
Mar 05 PHP
PHP读书笔记_运算符详解
Jul 01 PHP
PHP基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
May 03 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
Jan 25 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
Yii实现显示静态页的方法
2016/04/25 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
php使用scandir()函数扫描指定目录下所有文件示例
2019/06/08 PHP
jquery dialog键盘事件代码
2010/08/01 Javascript
jquery清空textarea等输入框实现代码
2013/04/22 Javascript
深入理解JavaScript中的传值与传引用
2013/12/09 Javascript
javascript使用switch case实现动态改变超级链接文字及地址
2014/12/16 Javascript
Node.js中的流(Stream)介绍
2015/03/30 Javascript
jQuery实现动态添加和删除一个div
2015/08/12 Javascript
EditPlus 正则表达式 实战(3)
2016/12/15 Javascript
js调用刷新界面的几种方式
2017/05/03 Javascript
js实现图片推拉门效果代码实例
2019/05/18 Javascript
VUE+elementui面包屑实现动态路由详解
2019/11/04 Javascript
vue中keep-alive,include的缓存问题
2019/11/26 Javascript
Vue router安装及使用方法解析
2020/12/02 Vue.js
详解Python中break语句的用法
2015/05/14 Python
python之文件的读写和文件目录以及文件夹的操作实现代码
2016/08/28 Python
Python按行读取文件的实现方法【小文件和大文件读取】
2016/09/19 Python
浅谈pytorch中的BN层的注意事项
2020/06/23 Python
Flask缓存静态文件的具体方法
2020/08/02 Python
利用django创建一个简易的博客网站的示例
2020/09/29 Python
纯CSS3编写的的精美动画进度条(无flash/无图像/无脚本/附源码)
2013/01/07 HTML / CSS
css图标制作教程制作云图标
2014/01/19 HTML / CSS
html5+svg学习指南之SVG基础知识
2014/12/17 HTML / CSS
HTML5中的Web Notification桌面右下角通知功能的实现
2018/04/19 HTML / CSS
国外最大的眼镜网站:Coastal
2017/08/09 全球购物
C语言面试题
2015/10/30 面试题
期末评语大全
2014/05/04 职场文书
爱与责任演讲稿
2014/05/20 职场文书
电气自动化求职信
2014/06/24 职场文书
中国在我心中演讲稿
2014/09/13 职场文书
2014年学校法制宣传日活动总结
2014/11/01 职场文书
2014年乡镇工会工作总结
2014/12/02 职场文书
2014年青年教师工作总结
2014/12/17 职场文书
2016年“5.12”护士节慰问信
2015/11/30 职场文书
实现GO语言对数组切片去重
2022/04/20 Golang