ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用してディレクトリ内のファイルを数える方法: Opendir/Readdir と FilesystemIterator の比較?

PHP を使用してディレクトリ内のファイルを数える方法: Opendir/Readdir と FilesystemIterator の比較?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-05 03:11:02202ブラウズ

How to Count Files in a Directory with PHP: Opendir/Readdir vs. FilesystemIterator?

PHP でディレクトリ内のファイルを数える

PHP でディレクトリを操作する場合、ディレクトリ内に存在するファイルの数を確認すると便利なことがよくあります。これを実現するには、いくつかの方法が利用可能です。

方法 1: Opendir() と Readdir() を使用する

従来のアプローチでは、opendir() と readdir() を使用します。 ) 機能。これらの関数では、明示的なディレクトリ パスの操作とファイルに対する手動の反復が必要です。提供したコード スニペットに見られるように:

<code class="php">$dir = opendir('uploads/');
$i = 0;
while (false !== ($file = readdir($dir))) {
    if (!in_array($file, array('.', '..') and !is_dir($file)) $i++;
}
echo "There were $i files";</code>

このメソッドは機能しますが、特定の状況では面倒になる可能性があります。

方法 2: SPL FilesystemIterator を使用する

より現代的な代替方法は、SPL FilesystemIterator クラスを利用することです。このイテレータにより、より便利で効率的なディレクトリ スキャンが可能になります。次に例を示します。

<code class="php">$fi = new FilesystemIterator(__DIR__, FilesystemIterator::SKIP_DOTS);
printf("There were %d Files", iterator_count($fi));</code>

このコード内:

  • __DIR__ は、現在のディレクトリ パスを表します。
  • FilesystemIterator::SKIP_DOTS は、反復子に隠しファイルを無視するように指示します。 (ピリオドで始まります)。
  • iterator_count() は、ディレクトリ内のファイルの総数を返します。

このメソッドはコードを簡素化し、ディレクトリ内のファイルをカウントするためのより洗練されたソリューションを提供します。ディレクトリ。

以上がPHP を使用してディレクトリ内のファイルを数える方法: Opendir/Readdir と FilesystemIterator の比較?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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