树型结构列出指定目录里所有文件的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
类的另类用法--数据的封装
Oct 09 PHP
php MySQL与分页效率
Jun 04 PHP
php生成缩略图示例代码分享(使用gd库实现)
Jan 20 PHP
设置php页面编码的两种方法示例介绍
Mar 03 PHP
单台服务器的PHP进程之间实现共享内存的方法
Jun 13 PHP
浅谈COOKIE和SESSION区别
Jul 19 PHP
为你总结一些php信息函数
Oct 21 PHP
PHP在线书签系统分享
Jan 04 PHP
PHP.vs.JAVA
Apr 29 PHP
非常经典的PHP文件上传类分享
May 15 PHP
php文件系统处理方法小结
May 23 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
自动分页的不完整解决方案
2007/01/12 PHP
如何在symfony中导出为CSV文件中的数据
2011/10/06 PHP
如何用php获取文件名后缀
2013/06/09 PHP
PHP根据两点间的经纬度计算距离
2014/10/31 PHP
php 伪造ip以及url来路信息方法汇总
2014/11/25 PHP
主流PHP框架的优缺点对比分析
2014/12/25 PHP
tp5框架内使用tp3.2分页的方法分析
2019/05/05 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
利用jQuery接受和处理xml数据的代码(.net)
2011/03/28 Javascript
DOM2非标准但却支持很好的几个属性小结
2012/01/21 Javascript
左侧是表头的JS表格控件(自写,网上没有的)
2013/06/04 Javascript
浅谈jQuery中height与width
2015/07/06 Javascript
javascript输出AscII码扩展集中的字符方法
2016/12/26 Javascript
图片懒加载imgLazyLoading.js使用详解
2020/09/15 Javascript
vue的安装及element组件的安装方法
2018/03/09 Javascript
Vue渲染过程浅析
2019/03/14 Javascript
微信小程序实现动态列表项的顺序加载动画
2019/07/25 Javascript
JavaScript冒泡算法原理与实现方法深入理解
2020/06/04 Javascript
基于JavaScript实现猜数字游戏代码实例
2020/07/30 Javascript
Python处理RSS、ATOM模块FEEDPARSER介绍
2015/02/18 Python
Python发送email的3种方法
2015/04/28 Python
详解Python中的各种函数的使用
2015/05/24 Python
Python的爬虫程序编写框架Scrapy入门学习教程
2016/07/02 Python
python实现一行输入多个值和一行输出多个值的例子
2019/07/16 Python
Python time库基本使用方法分析
2019/12/13 Python
python使用信号量动态更新配置文件的操作
2020/04/01 Python
基于python实现ROC曲线绘制广场解析
2020/06/28 Python
Python实例教程之检索输出月份日历表
2020/12/16 Python
CSS3用@font-face实现自定义英文字体
2013/09/23 HTML / CSS
英国女性运动服品牌:Sweaty Betty
2018/11/08 全球购物
P D PAOLA法国官网:西班牙著名的珠宝首饰品牌
2020/02/15 全球购物
What's the difference between Debug and Trace class? (Debug类与Trace类有什么区别)
2013/09/10 面试题
大专计算机个人求职的自我评价
2013/10/21 职场文书
知识竞赛拉拉队口号
2014/06/16 职场文书
扬州个园导游词
2015/02/06 职场文书
windows server2008 开启端口的实现方法
2022/06/25 Servers