树型结构列出指定目录里所有文件的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统计二维数组元素个数的方法
Nov 12 PHP
测试php连接mysql是否成功的代码分享
Jan 24 PHP
PHP实现合并discuz用户
Aug 05 PHP
Symfony2实现从数据库获取数据的方法小结
Mar 18 PHP
php微信支付接口开发程序
Aug 02 PHP
php+mongodb判断坐标是否在指定多边形区域内的实例
Oct 28 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
Sep 16 PHP
Laravel框架定时任务2种实现方式示例
Dec 08 PHP
Yii2框架实现利用mpdf创建pdf文件功能示例
Feb 08 PHP
thinkPHP5框架接口写法简单示例
Aug 05 PHP
php设计模式之职责链模式定义与用法经典示例
Sep 19 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
Dec 18 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 默默经典版本
2009/08/04 PHP
PHP下判断网址是否有效的代码
2011/10/08 PHP
详解WordPress开发中wp_title()函数的用法
2016/01/07 PHP
php实现图片上传并利用ImageMagick生成缩略图
2016/03/14 PHP
jQuery Ajax 全解析
2009/02/08 Javascript
多浏览器支持的右下角浮动窗口
2010/04/01 Javascript
原生Js实现按的数据源均分时间点幻灯片效果(已封装)
2010/12/28 Javascript
打造基于jQuery的高性能TreeView(asp.net)
2011/02/23 Javascript
Package.js  现代化的JavaScript项目make工具
2012/05/23 Javascript
js中this用法实例详解
2015/05/05 Javascript
JS打字效果的动态菜单代码分享
2015/08/21 Javascript
全面解析Bootstrap中Carousel轮播的使用方法
2016/06/13 Javascript
elementui的默认样式修改方法
2018/02/23 Javascript
jQuery实现根据身份证号获取生日、年龄、性别等信息的方法
2019/01/09 jQuery
基于vue-cli、elementUI的Vue超简单入门小例子(推荐)
2019/04/17 Javascript
教你使用vue-cli快速构建的小说阅读器
2019/05/13 Javascript
Python中的localtime()方法使用详解
2015/05/22 Python
python实现斐波那契数列的方法示例
2017/01/12 Python
详解python脚本自动生成需要文件实例代码
2017/02/04 Python
对python中dict和json的区别详解
2018/12/18 Python
python爬虫获取小区经纬度以及结构化地址
2018/12/30 Python
pytorch之添加BN的实现
2020/01/06 Python
Python如何使用正则表达式爬取京东商品信息
2020/06/01 Python
python 实现Harris角点检测算法
2020/12/11 Python
CSS3教程(5):网页背景图片
2009/04/02 HTML / CSS
美国折扣网站:jClub
2017/08/07 全球购物
Blue Nile蓝色尼罗河香港官网:世界最大在线钻石珠宝销售商
2020/05/07 全球购物
天鹅的故事教学反思
2014/02/04 职场文书
志愿者服务感言
2014/02/27 职场文书
菜篮子工程实施方案
2014/03/08 职场文书
担保书怎么写
2014/04/01 职场文书
中学生民族团结演讲稿
2014/08/27 职场文书
保密法制宣传月活动总结
2015/05/07 职场文书
安全生产警示教育活动总结
2015/05/09 职场文书
详解Javascript实践中的命令模式
2021/05/05 Javascript
SQLServer之常用函数总结详解
2021/08/30 SQL Server