2011-12-19 16 views
0

ディレクトリ内のすべてのファイルを一覧表示する方法を教えてください。私はルートディレクトリ内のファイルのみを必要とします。ルートディレクトリ内にディレクトリがある場合は、それらのディレクトリとファイルをスキップします。
は今、このコードphpを使ってディレクトリ内のファイルを一覧表示するには

$folderPath = file_directory_path().'/lexalytics/'; 
    if ($handle = opendir($folderPath)) { 
     $result .= '<div><ul>'; 
     while (false !== ($entry = readdir($handle))) { 
      if ($entry != "." && $entry != "..") { 
       $result .= "<li><a href=../".$folderPath.$entry.">".$entry."</a>\n</li>"; 
      } 
     } 
     $result .= '</ul></div>'; 
     closedir($handle); 
    } 

を使用しています。しかし、それは彼らにサブディレクトリとファイルの一覧が表示されます。 どのようにそれらを避けることができますか? plsは私

+0

再帰的な検索のためのオプションがあります。再帰的検索を行わないでください。 – Bakudan

+0

これはPHP5ではありません。 – Flukey

答えて

0

このコード

$folderPath = file_directory_path().'/lexalytics/'; 
    $handle = @opendir($folderPath) or die("Unable to open $path"); 
    $result .= '<div><ul>'; 
    // Loop through the files 
    while ($entry = @readdir($handle)) { 
     if(is_file($folderPath.$entry)) { 
      $result .= "<li><a href=../".$folderPath.$entry.">".$entry."</a>\n</li>"; 
     } 
    } 
    $result .= '</ul></div>'; 
    closedir($handle); 
+1

も表示しますなぜ機能からのエラーを抑制するために '@'記号を使用していますか?なぜあなたは例外を投げる代わりにダイを使用していますか?恐ろしいコード。 – Flukey

1
 
$path = "your-path"; 

    // Open the folder 
    $dir_handle = @opendir($path) or die("Unable to open $path"); 

    // Loop through the files 
    while ($file = readdir($dir_handle)) { 

    if($file == "." || $file == ".." || $file == "index.php") 

     continue; 
     echo "<a href=\"$file\">$file</a><br />"; 

    } 
    // Close 
    closedir($dir_handle); 
+0

これはサブディレクトリ名 –

3

を試してみてください助けPHP5s新しいDirectoryIteratorクラスを使用してください:

これはファイルのみをリストやフォルダを除外します:元の関数で

$directory = file_directory_path().'/lexalytics/'; 
$filenames = array(); 
$iterator = new DirectoryIterator($directory); 
foreach ($iterator as $fileinfo) { 
    if ($fileinfo->isFile()) { 
     $filenames[$fileinfo->getMTime()] = $fileinfo->getFilename(); 
    } 
} 
関連する問題