2013-05-21 54 views
-2
<?php 

function directory_listing($directory_name) 
{ 
    if ($handle = opendir($directory_name)) 
    { 
     while (false !== ($entry = readdir($handle))) 
     { 
      if ($entry != "." && $entry != "..") 
      { 
       if(is_dir($entry)) 
       { 

        **//program is avoiding this block 
        echo $entry.'--<br/>';** 

       } 
       else 
       { 
        echo $entry.'<br/>'; 
       } 
      } 
     } 
     closedir($handle); 
    } 
} 


directory_listing('go'); 

?> 

我想用上面的代碼列出目錄。但是該程序正在避免提到,如果阻止使用PHP的目錄列表

感謝

Foysal

+0

'$房源= SCANDIR( 「走」);'完美的作品 – Baba

回答

5

要列出目錄,你可以使用DirectoryIterator

$iterator = new DirectoryIterator('pathtoyourdir/'); 
foreach ($iterator as $fileinfo) { 
    if ($fileinfo->isDir()) { 
     echo $fileinfo->getFilename() . "\n"; 
    } 
} 
+0

+1。 SPL迭代器非常強大......很遺憾,許多人仍然在使用舊的PHP方法來處理這些事情。 – Spudley

+0

因爲他們在舊教程中發現它,所以他們使用舊方法而不是現代方法。 – Robert

1

寫而不是完整的相對路徑:

if(is_dir("$directory_name/$entry")) 

$entry是不是在當前工作目錄,但在目錄中你正在閱讀。

1

$entry不是文件/目錄的完整路徑。改爲使用$directory_name.'/'.$entry

0

或者你可以看看http://php.net/glob

foreach (glob('dir/*') as $file) { 
    if (is_dir($file)) { 
     echo $entry . '--<br />'; 
    } 
    else { 
     echo $entry . '<br />'; 
    } 
}