2012-09-16 165 views
-1

我试图显示特定目录中的所有文件夹。基本上,每次添加新文件夹时,它都会自动显示在列表中。这是我到目前为止。我从其他帖子拼凑起来,似乎没有工作,不知道为什么。我收到关于权限的一个令人讨厌的错误,但没有找到。PHP显示目录文件夹

 $dir = '/s/'; 
     $result = array(); 

     if (is_dir($dir)) { 
       $iterator = new RecursiveDirectoryIterator($dir); 
       foreach (new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::CHILD_FIRST) as $file) {      
        if (!$file->isFile()) { 
         $result[] = 'path: ' . $file->getPath(). ', filename: ' . $file->getFilename(); 
        } 
       } 

     } 

     print_r($result); 

回答

0

您可以使用自制代码:

function collect_files($dir) 
{ 
if (is_dir($dir)) { 
    if ($dh = opendir($dir)) { 
     $dir = $dir.'/'; 
     while (($file = readdir($dh)) !== false) { 
     if(filetype($dir . $file)=='file'){ 
      $path = strchr($dir,'/');    
      echo "$file - $path<br>\n"; 
      } 
     } 
     rewinddir($dh); 
     while (($file = readdir($dh)) !== false) { 
     if(filetype($dir . $file)=='dir') 
      if($file!='.'&&$file!='..'){ 
      collect_files($dir.$file); 
      } 
     } 
     closedir($dh); 
    } 
} 
} 
collect_files('.'); 
相关问题