PHP でディレクトリが空かどうかを確実に判断する方法は?

DDD
リリース: 2024-10-26 10:09:02
オリジナル
789 人が閲覧しました

How to Reliably Determine if a Directory is Empty in PHP?

PHP でディレクトリが空であることを確認する

ディレクトリにファイルがないかどうかを確認するには、一般的なアプローチとして PHP の組み込み関数を使用します。 glob や scandir のように。ただし、これらの手法では特定の隠しファイルを見落とす可能性があります。正確性を確保するには、is_dir_empty() 関数の利用を検討してください。

is_dir_empty() 関数

is_dir_empty() 関数は、scandir を利用してディレクトリの内容を精査します。ディレクトリのみの場合。 (現在のディレクトリ) と .. (親ディレクトリ) が存在する場合、ディレクトリは空とみなされ、True が返されます。それ以外の場合は、False を返し、他のファイルまたはサブディレクトリが存在することを示します。

実装例

<code class="php">function is_dir_empty($dir) {
  return (count(scandir($dir)) == 2);
}</code>
ログイン後にコピー

代替関数

代わりに、より効率的な方法では、opendir と readdir を使用して、ファイルを完全に読み取らずにファイルの存在を直接チェックします。

<code class="php">function dir_is_empty($dir) {
  $handle = opendir($dir);
  while (false !== ($entry = readdir($handle))) {
    if ($entry != "." &amp;&amp; $entry != "..") {
      closedir($handle);
      return false;
    }
  }
  closedir($handle);
  return true;
}</code>
ログイン後にコピー

制御構造での関数の使用

1 回適切な関数を特定したら、中間変数を使用せずに、その出力を制御構造内で直接利用できます。例:

<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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート