ホームページ >バックエンド開発 >PHPチュートリアル >【アイデア募集】PHPディレクトリスキャン、無限ループを最大限防ぐには?

【アイデア募集】PHPディレクトリスキャン、無限ループを最大限防ぐには?

WBOY
WBOYオリジナル
2016-06-23 14:25:101067ブラウズ

ディレクトリ スキャン PHP opendir

PHP は無限ループを防ぐために特定のフォルダーをスキャンします。
今思いつくアイデアは 2 つだけです
1. スキャン中にディレクトリに遭遇したら、そのまま続行します。クラッシュしてスタックしやすいです
2. レイヤーのスキャン、1 つのレイヤーをスキャンし、ディレクトリ アドレスを記録ファイルに保存します。次に、保存されたレコード ファイルからディレクトリ アドレスを抽出し、一度に 1 つのレイヤーのみをスキャンして、もう一度 1 つのレイヤーをスキャンします。ただし、ディレクトリが多すぎると、やはりクラッシュしやすくなります。
もっと良いアイデアはありますか?

ディスカッションに返信 (解決策)

イテレーターを使用できます

$ite=new RecursiveDirectoryIterator("./");$bytestotal=0;$nbfiles=0;foreach (new RecursiveIteratorIterator($ite) as $filename=>$cur) {    $filesize=$cur->getSize();    $bytestotal+=$filesize;    $nbfiles++;    echo "$filename => $filesize\n";}$bytestotal=number_format($bytestotal);echo "Total: $nbfiles files, $bytestotal bytes\n";

Filesystem は問題を解決できますか?

SPL はこの問題の解決に役立ちました。コード #1 を見てください

1 階のコードを集めて、また何かを学びました。

拡張機能を直接使用してください
ディレクトリ

SPL はこの問題の解決に役立ちます。コード #1 を参照してください

これは非常に優れていますが、それでも時々スタックすることがあります。 。 。

うわー、1階はすごい迫力ですね

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。