ホームページ > バックエンド開発 > PHPチュートリアル > **PHP でディレクトリが空かどうかを正確に確認する方法**

**PHP でディレクトリが空かどうかを正確に確認する方法**

Patricia Arquette
リリース: 2024-10-24 19:21:02
オリジナル
1030 人が閲覧しました

**How to Accurately Check if a Directory is Empty in PHP?**

PHP: ディレクトリが空であるかどうかを判断する

PHP でディレクトリが空であるかどうかを確認しようとすると、ディレクトリが誤って空であると識別されるか、その逆の場合に一般的な問題が発生します。

glob() と Scandir の利用

提供されたスクリプトは、ディレクトリの内容を評価するために 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート