• 遍历 目录的几种有效办法


    这一两个月来到新公司 刚好赶上项目进度,加班有点多,忘了记录点什么。。刚刚商品上传扫描 这块用上了之前研究的 目录相关技巧的 知识,很开心;当然下一期的 迭代器的讲解更有意思 ^-^;

    传统扫描目录(我基本弃用了):

    /**********************
    一个简单的目录递归函数
    第一种实现办法:用dir返回对象
     ***********************/
    function tree($directory)
    {
        $mydir = dir($directory);
        echo "<ul>
    ";
        while($file = $mydir->read())
        {
            if((is_dir("$directory/$file")) AND ($file!=".") AND ($file!=".."))
            {
                echo "<li><font color="#ff00cc"><b>$file</b></font></li>
    ";
                tree("$directory/$file");
            }
            else
                echo "<li>$file</li>
    ";
        }
        echo "</ul>
    ";
        $mydir->close();
    }
    

      

    第二种:php5.4 更新的,比较好用,遍历目录

    /**
     * @desc 使用扫描目录函数来遍历
     * @Author  FredGui
     * @param string $path
     */
    function dirList($path = '/var/www/html/guimm/test'){
        foreach(scandir($path) as $i => $mod)
        {
            if(is_dir('/var/www/html/guimm/test/'.$mod) && !in_array($mod,['.','..']))
            {
                test1('/var/www/html/guimm/test/'.$mod);
                echo '目录是:'. $mod . "<br/>";
            }else{
                $files[$i] = $mod;
                echo '文件:'. $mod . "<br/>";
            }
        }
    }
    

    最后一种 我现在 用的,迭代器,他的好处就不多说了,下一期博客 会讲解相关的迭代器原理

    /**
     * @desc 遍历目录,用文件系统迭代器
     * @Author  FredGui
     * @param string $path
     */
    function fileList( $path = '/var/www/html/guimm/test'){
    
        $file = new FilesystemIterator($path);
        foreach ($file as $fileinfo) {
            /** @var $fileinfo SplFileInfo */
           if($fileinfo->isFile()){
               echo $fileinfo -> getFilename() . "<br/>";
           }elseif($fileinfo->isDir()){
               echo $fileinfo->getPathname() . "<br/>";
               fileList($fileinfo->getPathname());
           }
        }
    }
    

      

     

  • 相关阅读:
    文件系统之磁盘配额
    mysql之基础操作
    mysql-两种方式安装
    文件系统之parted 分区
    JDK1.7配置及测试
    ASP.NET中处理自定义错误的最佳方式
    C#使用System.Data.SQLite操作SQLite
    C#判断ip地址是否ping的通
    C#的WinForm中制作饼状图和柱状图
    使用.net(C#)发送邮件学习手册(带成功案例)
  • 原文地址:https://www.cnblogs.com/guixiaoming/p/6923028.html
Copyright © 2020-2023  润新知