树型结构列出指定目录里所有文件的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
如何使用PHP往windows中添加用户
Dec 06 PHP
PHP 变量定义和变量替换的方法
Jul 30 PHP
simplehtmldom Doc api帮助文档
Mar 26 PHP
学习php过程中的一些注意点的总结
Oct 25 PHP
php时区转换转换函数
Jan 07 PHP
Codeigniter实现处理用户登录验证后的URL跳转
Jun 12 PHP
php插入排序法实现数组排序实例
Feb 16 PHP
yii2中的rules 自定义验证规则详解
Apr 19 PHP
php文件上传、下载和删除示例
Aug 28 PHP
ThinkPHP3.2框架自带分页功能实现方法示例
May 13 PHP
TP5多入口设置实例讲解
Dec 15 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
限制ckeditor上传图片文件大小的方法
2013/11/15 PHP
利用PHP将部分内容用星号替换
2020/04/21 PHP
PHP中子类重载父类的方法【parent::方法名】
2016/05/06 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
2019/03/22 PHP
基于Jquery的表格隔行换色,移动换色,点击换色插件
2010/12/22 Javascript
使用jquery实现select添加实现后台权限添加的效果
2011/05/28 Javascript
javascript中自定义对象的属性方法分享
2013/07/12 Javascript
jQuery性能优化的38个建议
2014/03/04 Javascript
javascript与有限状态机详解
2014/05/08 Javascript
Jquery中offset()和position()的区别分析
2015/02/05 Javascript
JS实现动态给图片添加边框的方法
2015/04/01 Javascript
js获取当前页的URL与window.location.href简单方法
2017/02/13 Javascript
基于jQuery Easyui实现登陆框界面
2017/07/10 jQuery
node打造微信个人号机器人的方法示例
2018/04/26 Javascript
微信小程序使用二次贝塞尔曲线画波浪
2018/12/25 Javascript
微信小程序—setTimeOut定时器的问题及解决
2019/07/26 Javascript
vue中实现上传文件给后台实例详解
2019/08/22 Javascript
javascript实现蒙版与禁止页面滚动
2020/01/11 Javascript
Python 多线程抓取图片效率对比
2016/02/27 Python
Python如何读取MySQL数据库表数据
2017/03/11 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
2017/11/30 Python
python绘制条形图方法代码详解
2017/12/19 Python
python利用OpenCV2实现人脸检测
2020/04/16 Python
pandas计数 value_counts()的使用
2019/06/24 Python
怎么解决pycharm license Acti的方法
2020/10/28 Python
深入理解HTML的FormData对象
2016/05/17 HTML / CSS
劳动工资科岗位职责范本
2014/03/02 职场文书
机关单位人员学雷锋心得体会
2014/03/10 职场文书
新员工试用期自我鉴定
2014/04/17 职场文书
2014年房产销售工作总结
2014/12/08 职场文书
2015年社区创卫工作总结
2015/04/21 职场文书
2015年派出所民警工作总结
2015/04/24 职场文书
学校节水倡议书
2015/04/29 职场文书
Nginx的反向代理实例详解
2021/03/31 Servers
MyBatis配置文件解析与MyBatis实例演示
2022/04/07 Java/Android
图神经网络GNN算法
2022/05/11 Python