PHP でディレクトリが空であるかどうかを確認しようとすると、ディレクトリが誤って空であると識別されるか、その逆の場合に一般的な問題が発生します。
提供されたスクリプトは、ディレクトリの内容を評価するために glob() に依存します。ただし、glob() には隠された Unix ファイルの検出に制限があり、信頼性の低い結果が得られます。別のアプローチとしては、代わりに scandir を使用し、隠しファイルが確実に含まれるようにする方法があります。
<code class="php">function is_dir_empty($dir) { return (count(scandir($dir)) === 0); }</code>
この関数はディレクトリをスキャンし、ディレクトリが空の場合 (" 以外のファイルが含まれていない場合)、true を返します。 ." と "..")、それ以外の場合は false です。
効率を向上させるには、次の代替案を検討してください。
<code class="php">function dir_is_empty($dir) { $handle = opendir($dir); while (false !== ($entry = readdir($handle))) { if ($entry != "." && $entry != "..") { closedir($handle); return false; } } closedir($handle); return true; }</code>
この実装では、不必要なディレクトリのトラバーサルが回避され、デフォルト以外を検出するとすぐに false が返されます。 files.
コード内で単語をブール値に割り当てる必要はありません。 PHP ブール値自体は空と空でない状態を表すため、if():
<code class="php">if (is_dir_empty($dir)) { echo "the folder is empty"; } else { echo "the folder is NOT empty"; }</code>
以上が**PHP でディレクトリが空かどうかを正確に確認する方法**の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。