树型结构列出指定目录里所有文件的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 相关文章推荐
mysql中存储过程、函数的一些问题
Feb 14 PHP
隐藏X-Space个人空间下方版权方法隐藏X-Space个人空间标题隐藏X-Space个人空间管理版权方法
Feb 22 PHP
PHP 多进程 解决难题
Jun 22 PHP
使用PHP生成二维码的两种方法(带logo图像)
Mar 14 PHP
php获取mysql字段名称和其它信息的例子
Apr 14 PHP
thinkphp浏览历史功能实现方法
Oct 29 PHP
phplot生成图片类用法详解
Jan 06 PHP
PHP代码实现爬虫记录――超管用
Jul 31 PHP
Windows2003下php5.4安装配置教程(Apache2.4)
Jun 30 PHP
微信支付开发交易通知实例
Jul 12 PHP
Ajax请求PHP后台接口返回信息的实例代码
Aug 21 PHP
为你的 Laravel 验证器加上多验证场景的实现
Apr 07 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
dedecms采集中可以过滤多行代码的正则表达式
2007/03/17 PHP
批量获取memcache值并按key的顺序返回的实现代码
2011/06/14 PHP
PHP实现把文本中的URL转换为链接的auolink()函数分享
2014/07/29 PHP
php单例模式示例分享
2015/02/12 PHP
PHP实现根据数组某个键值大小进行排序的方法
2018/03/13 PHP
给moz-firefox下添加IE方法和属性
2007/04/10 Javascript
jquery nth-child()选择器的简单应用
2010/07/10 Javascript
扩展easyui.datagrid,添加数据loading遮罩效果代码
2010/11/02 Javascript
js中的数组Array定义与sort方法使用示例
2013/08/29 Javascript
如何在指定的地方插入html内容和文本内容
2013/12/23 Javascript
html的DOM中document对象forms集合用法实例
2015/01/21 Javascript
js与jquery实时监听输入框值的oninput与onpropertychange方法
2015/02/05 Javascript
jQuery原理系列-css选择器的简单实现
2016/06/07 Javascript
js实现抽奖效果
2017/03/27 Javascript
利用js查找数组中指定元素并返回该元素的所有索引示例
2017/03/29 Javascript
BootStrap Select清除选中的状态恢复默认状态
2017/06/20 Javascript
Vue中使用sass实现换肤功能
2018/09/07 Javascript
vue.js使用v-model实现表单元素(input) 双向数据绑定功能示例
2019/03/08 Javascript
js实现时分秒倒计时
2019/12/03 Javascript
vue-autoui自匹配webapi的UI控件的实现
2020/03/20 Javascript
简明 Python 基础学习教程
2007/02/08 Python
Python的Django框架使用入门指引
2015/04/15 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
2018/08/31 Python
pyqt 实现在Widgets中显示图片和文字的方法
2019/06/13 Python
Python3如何使用range函数替代xrange函数
2020/10/05 Python
通往英国高街的商店橱窗:Down Your High Street
2020/07/19 全球购物
酒店前台接待岗位职责
2013/12/03 职场文书
英语道歉信范文
2014/01/09 职场文书
幼儿园六一儿童节活动总结
2015/02/10 职场文书
幼儿园六一主持词开场白
2015/05/28 职场文书
舌尖上的中国观后感
2015/06/02 职场文书
光荣之路观后感
2015/06/12 职场文书
如何写通讯稿
2015/07/22 职场文书
浅析InnoDB索引结构
2021/04/05 MySQL
巧用 -webkit-box-reflect 倒影实现各类动效(小结)
2021/04/22 HTML / CSS
5种 JavaScript 方式实现数组扁平化
2021/10/05 Javascript