zoukankan      html  css  js  c++  java
  • PHP 遍历文件夹下的文件以及子文件夹

    // 递归的方式实现
    function my_dir( $dir )
    {
      if ( !is_dir($dir) )
      {
        return 'not dir';die();
      }
      $files = array();
      $dir_list = scandir($dir);
      foreach( $dir_list as $file )
      {
        if( $file!='.' && $file!='..' )
        {
          if( is_dir( $dir.'/'.$file ))
          {
            $files[$file] = my_dir( $dir.'/'.$file );
          }
          else
          {
            $files[] = $file;
          }
        }
      }
      return $files;
    };

    // 队列方式实现

    function my_dir_list( $dir )
    {
      if( !is_dir( $dir) )
      {
        return 'not dir';die();
      }
      $files = array();
      $queue = array( $dir );
      // $data = each( $queue );
      while( $data = each( $queue) )
      {
        $path = $data['value'];
        $handle = opendir( $path );
        if( is_dir($path) && $handle )
        {
          // $file = readdir( $handle );
          while( $file = readdir( $handle) )
          {
            if ( $file == '.' || $file == '..' )
            {
              continue;
            }
            else
            {
              $real_path = $path.'/'.$file;
              $files[] = $real_path;
              if( is_dir($real_path) )
              {
                $queue[] = $real_path;
              }
            }
          }
        }
        closedir($handle);
      }
      return $files;
    }

  • 相关阅读:
    设计模式之备忘录模式
    特殊传参方式
    页面响应效率测试
    composer安装的包git无法提交的解决办法是因为安装的时候生成了.git隐藏文件
    数据结构和算法深入浅出理解
    中缀表达式转换为后缀表达式
    p2p技术
    【自动化测试】WebDriver使用
    pt-query-digest简介使用
    mac编译openJDK8
  • 原文地址:https://www.cnblogs.com/laowenBlog/p/6531487.html
Copyright © 2011-2022 走看看