树型结构列出指定目录里所有文件的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设计模式 Proxy (代理模式)
Jun 26 PHP
PHP session_start()问题解疑(详细介绍)
Jul 05 PHP
分享一段php获取linux服务器状态的代码
May 27 PHP
php删除左端与右端空格的方法
Nov 29 PHP
php实现Linux服务器木马排查及加固功能
Dec 29 PHP
php打印一个边长为N的实心和空心菱型的方法
Mar 02 PHP
PHP代码判断设备是手机还是平板电脑(两种方法)
Oct 19 PHP
php快速排序原理与实现方法分析
May 26 PHP
ajax+php实现无刷新验证手机号的实例
Dec 22 PHP
解决在Laravel 中处理OPTIONS请求的问题
Oct 11 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
Feb 27 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
从零开始学YII2框架(六)高级应用程序模板
2014/08/20 PHP
微信公众号模板消息群发php代码示例
2016/12/29 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
2018/02/07 PHP
javascript动态向网页中添加表格实现代码
2014/02/19 Javascript
什么是MEAN?JavaScript编程中的MEAN是什么意思?
2014/12/18 Javascript
Bootstrap学习笔记之css样式设计(2)
2016/06/07 Javascript
jQuery stop()用法实例详解
2016/07/28 Javascript
js仿QQ邮箱收件人选择与搜索功能
2017/02/10 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
2017/05/17 Javascript
AngularJS实现tab选项卡的方法详解
2017/07/05 Javascript
如何使用JS在HTML中自定义字符串格式化
2017/07/20 Javascript
Node.js中的不安全跳转如何防御详解
2018/10/21 Javascript
详解Vue项目部署遇到的问题及解决方案
2019/01/11 Javascript
vue实现codemirror代码编辑器中的SQL代码格式化功能
2019/08/27 Javascript
ElementUI多个子组件表单的校验管理实现
2019/11/07 Javascript
element-ui 远程搜索组件el-select在项目中组件化的实现代码
2019/12/04 Javascript
bootstrap实现tab选项卡切换
2020/08/09 Javascript
Vue实现点击导航栏当前标签后变色功能
2020/08/19 Javascript
[04:10]DOTA2英雄梦之声_第11期_圣堂刺客
2014/06/21 DOTA
详细讲解Python中的文件I/O操作
2015/05/24 Python
Python编程实现蚁群算法详解
2017/11/13 Python
Tensorflow 同时载入多个模型的实例讲解
2018/07/27 Python
使用Python脚本zabbix自定义key监控oracle连接状态
2019/08/28 Python
Python列表切片常用操作实例解析
2020/03/10 Python
python中怎么表示空值
2020/06/19 Python
Pytorch 中的optimizer使用说明
2021/03/03 Python
CSS3 实用技巧:实现黑白图像效果示例代码
2013/07/11 HTML / CSS
HTML5 canvas基本绘图之图形组合
2016/06/27 HTML / CSS
佳能加拿大网上商店:Canon eStore Canada
2018/04/04 全球购物
学生就业推荐信
2013/11/13 职场文书
2014年中班元旦活动方案
2014/02/14 职场文书
解除劳动合同协议书
2014/04/14 职场文书
主题教育活动总结
2014/05/05 职场文书
检察院对照“四风”认真查找问题落实整改措施
2014/09/26 职场文书
8个JS的reduce使用实例和reduce操作方式
2021/10/05 Javascript
Mysql中一千万条数据怎么快速查询
2021/12/06 MySQL