0

PHP バージョン 5.4.16 を実行しているサーバーがあり、scandir を使用してディレクトリ内のファイルを一覧表示しようとしています。問題が何であるかを理解するのに苦労しています。../store/dir_to_scan と /root/store/dir_to_scan の両方を試しました。以下に示すように、glob と scandir の両方を使用してみましたが、どちらも役に立ちませんでした。dir_to_scan ディレクトリを削除すると、/root/store 内のディレクトリが一覧表示されますが、これが最も不可解です。また、パーミッションの問題ではないことを確認するために、フォルダーとファイルを 777 に chmod しました。実行時にも「Array ( [type] => 2 [message] => Invalid argument provided for foreach() [file] => /root/html/test.php [line] => 5 )」というエラーが表示されます正しいディレクトリ設定で。

助けてくれてありがとう。

ディレクトリ設定

/root/html //where php script is run
/root/store/dir_to_scan //files I need to list

PHP スクリプト

<?
 #$files = glob('../store/dir_to_scan/*', GLOB_BRACE);
 $files = scandir("/root/store/dir_to_scan/");
   foreach($files as $file) {

      //do work here
      if ($file === '.' || $file === '..') {
                continue;
       }
    echo $file . "<br>";
}
print_r(error_get_last());
?>
4

2 に答える 2

0

これはばかげているかもしれませんが、末尾にスラッシュを付けてみてください:

/root/store/dir_to_scan ->

$files = scandir("/root/store/dir_to_scan/");
于 2013-06-08T23:51:40.337 に答える
0

これはあなたの問題を解決するはずです

$carpeta= "/root/store/dir_to_scan";
    if(is_dir($carpeta)){
        if($dir = opendir($carpeta)){
            while(($file = readdir($dir)) !== false){
                if($file != '.' && $file != '..' && $file != '.htaccess'){
                  echo $file;  //or save file name in an array..
                 //  $array_file[] = $file;

                }
            }
            closedir($dir);
        }
    }
于 2013-06-09T04:47:11.377 に答える