php 如何遍历文件到一个数组中去?
请看下图描述:

解决方案 »

  1.   

    class FileExtensionFinder extends FilterIterator {
    protected $predicate, $path;

    public function __construct($path, $predicate) {
    $this->predicate = $predicate;
    $this->path = $path;
    $it = new RecursiveDirectoryIterator ( $path );
    $flatIterator = new RecursiveIteratorIterator ( $it );
    parent::__construct ( $flatIterator );
    }
    public function accept() {
    $pathinfo = pathinfo ( $this->current () );
    $extension = $pathinfo ['extension'];
    return ($extension == $this->predicate);
    }
    }$it = new FileExtensionFinder ( '.', 'css' );
    print_r ( iterator_to_array ( $it, FALSE ) );
      

  2.   


    <?php
    class FileExtensionFinder extends FilterIterator {
    protected $predicate, $path; public function __construct($path, $predicate) {
    $this->predicate = $predicate;
    $this->path = $path;
    $it = new RecursiveDirectoryIterator ( $path );
    $flatIterator = new RecursiveIteratorIterator ( $it );
    parent::__construct ( $flatIterator );
    }
    public function accept() {
    $pathinfo = pathinfo ( $this->current () );
    $extension = $pathinfo ['extension'];
    return ($extension == $this->predicate);
    }
    }$it = new FileExtensionFinder ( '.', 'css' );
    print_r ( iterator_to_array ( $it, FALSE ) );
    ?>
      

  3.   

    $dir = "./";
    if(!is_dir($dir)){
      mkdir($dir); //创建新文件夹
    }
     
     @$dirs=opendir($dir);
     while (false !== ($file = readdir($dirs))) { //遍历该php文件所在目录
          list($filesname,$kzm)=explode(".",$file);//获取扩展名
        
              if (!is_dir($dir.'/'.$file)) { //文件夹过滤
                $array[]=$file;//把符合条件的文件名存入数

      //echo $file;
    $datetime[]=date("Y-n-d H:i:s",filectime("$dir/$file"));//把符合条件的文件名存入数组
                $i++;//记录文件总张数
               }
             
        }
    你想要遍历某一种类型的文件的话,修改一下就可以了。!~代码测试过的。
      

  4.   

    谢谢,其实有了最简单的答案了:
    $css_files_array=glob(
    '{
    **/*.CSS,
    **/**/*.CSS,
    **/**/**/*.CSS
    }',
    GLOB_BRACE
    );
    http://bbs.phpchina.com/thread-171061-2-1.html
      

  5.   

    递归 GOOGLE搜索 遍历目录
      

  6.   

    function find($path='.') {
      $r = array();
      foreach(glob("$path/*") as $f) {
        if(is_dir($f)) $r = array_merge($r, find($f));
        else $r[] = $f;
      }
      return $r;
    }
    function foo($a) {
      return strtolower(substr($a, -3)) == 'css';
    }
    print_r(array_filter(find('modcss'), 'foo'));
      

  7.   

    foreach ( $it as $entry ) {
    echo $entry . PHP_EOL;
    }
    这样就可以输出结果了,东西全存在$it里。
      

  8.   

    LZ图片处理的功能很不错,你用PHP先打开文件夹,然后遍历文件。
    网上有PHP扫描目录的函数,你可以自己找一下。