树型结构列出指定目录里所有文件的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正则过滤html标签、空格、换行符的代码(附说明)
Oct 25 PHP
php下使用iconv需要注意的问题
Nov 20 PHP
php中使用cookie来保存用户登录信息的实现代码
Mar 08 PHP
基于PHP常用字符串的总结(待续)
Jun 07 PHP
php像数组一样存取和修改字符串字符
Mar 21 PHP
为你总结一些php系统类函数
Oct 21 PHP
PHP 接入微信扫码支付总结(总结篇)
Nov 03 PHP
利用PHP判断文件是否为图片的方法总结
Jan 06 PHP
PHP处理Ajax请求与Ajax跨域问题
Feb 13 PHP
yii2.0整合阿里云oss上传单个文件的示例
Sep 19 PHP
thinkPHP5框架auth权限控制类与用法示例
Jun 12 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/11/19 PHP
Zend Guard使用指南及问题处理
2015/01/07 PHP
PHP strip_tags保留多个HTML标签的方法
2016/05/22 PHP
laravel框架如何设置公共头和公共尾
2019/10/22 PHP
控制打印时页眉角的代码
2007/02/08 Javascript
JavaScript 提升运行速度之循环篇 译文
2009/08/15 Javascript
js变量以及其作用域详解
2020/07/18 Javascript
js控制href内容的连接内容的变化示例
2014/04/30 Javascript
原生Javascript封装的一个AJAX函数分享
2014/10/11 Javascript
html的DOM中document对象images集合用法实例
2015/01/21 Javascript
javascript实时显示北京时间的方法
2015/03/12 Javascript
jQuery实现图片走马灯效果的原理分析
2016/01/16 Javascript
原生javascript 学习之js变量全面了解
2016/07/14 Javascript
javascript的document中的动态添加标签实现方法
2016/10/24 Javascript
jQuery+ajax实现修改密码验证功能实例详解
2017/07/06 jQuery
jQuery EasyUI开发技巧总结
2017/09/26 jQuery
js 两个日期比较相差多少天的实例
2017/10/19 Javascript
vue 实现全选全不选的示例代码
2018/03/29 Javascript
微信小程序实现指定显示行数多余文字去掉用省略号代替
2018/07/25 Javascript
基于Vue实现微信小程序的图文编辑器
2018/07/25 Javascript
详解Vscode中使用Eslint终极配置大全
2019/11/08 Javascript
详谈Vue.js框架下main.js,App.vue,page/index.vue之间的区别
2020/08/12 Javascript
python用ConfigObj读写配置文件的实现代码
2013/03/04 Python
python pdb调试方法分享
2014/01/21 Python
Python制作CSDN免积分下载器
2015/03/10 Python
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
2020/01/04 Python
pycharm中使用request和Pytest进行接口测试的方法
2020/07/31 Python
HTML5之多线程(Web Worker)
2019/01/02 HTML / CSS
英国高档百货连锁店:John Lewis
2017/11/20 全球购物
工商管理专业职业生涯规划
2014/01/01 职场文书
答谢会策划方案
2014/05/12 职场文书
2015年反洗钱工作总结
2015/04/25 职场文书
2015年电气技术员工作总结
2015/07/24 职场文书
Java练习之潜艇小游戏的实现
2022/03/16 Java/Android
instantclient客户端 连接oracle数据库
2022/04/26 Oracle
js 实现验证码输入框示例详解
2022/09/23 Javascript