1

フォルダーには数百万のファイルがあり、そのフォルダーにはいくつかのサブフォルダーがあり、各サブフォルダーは数千のファイルで構成されています。glob 関数を使用して特定のフォルダーのすべてのファイルを一覧表示できますが、この場合は非常に高いため、php の致命的なエラーが発生しています。許容メモリサイズが使い果たされました。より多くのメモリを割り当ててみてください。そのサブフォルダに1つのphp.iniファイルを保持するだけで実行できることはわかっていますが、私が正確に望むのはすべてをリストすることです。

     <?php
      foreach (glob("files/*") as $filename) {
       echo "uploads/" . "$filename" .  "\n</br>";
    }
    ?>
4

1 に答える 1

0

glob() の代わりにopendirを使用します。

次のようなことを試してください:

function printdirs($path) { 
if ($handle = opendir($path)) {
    while (false !== ($entry = readdir($handle))) {
        if ($entry != "." && $entry != "..") {
            if(is_dir($path.'/'.$entry))
                printdirs($path.'/'.$entry);
            else
            echo $path . "/" . $entry .  "\n</br>";
        }
    }
    closedir($handle);
}}

printdirs('uploads');
于 2013-02-22T14:49:13.337 に答える