PHP でディレクトリ内のファイルを数える
-
FilesystemIterator
クラスを使用して PHP のディレクトリ内のファイルをカウントする -
glob()
およびcount()
関数を使用して PHP のディレクトリ内のファイルをカウントする -
scandir()
およびcount()
関数を使用して、PHP でディレクトリ内のファイルをカウントする
この記事では、PHP でディレクトリ内のファイルを数えるいくつかの方法を紹介し、実演します。
FilesystemIterator
クラスを使用して PHP のディレクトリ内のファイルをカウントする
PHP は、ディレクトリ内のファイルを数える洗練された方法である FilesystemIterator
クラスを提供します。 このクラスには、filesystem
を反復するためのさまざまな操作を実行する多くの関数と定数が含まれています。
iterator_count()
関数を使用すると、イテレータの要素数がカウントされます。
次のディレクトリ構造を考えてみましょう。
myDir
├── abc.html
├── abc.jpeg
├── abc.php
└── abc.png
まず、変数 $iterator
を作成し、FilesystemIterator()
のインスタンスを格納します。 最初のパラメーターを __DIR__
として設定し、コンストラクターの 2 番目のパラメーターとして FilesystemIterator::SKIP_DOTS
を使用します。
__DIR__
はスクリプトが配置されている現在のディレクトリを表し、2 番目のパラメーターは .
をスキップするフラグです。 および ..
はディレクトリに存在します。 $iterator
変数には、現在のディレクトリの filesystem
イテレータが含まれています。
ファイル名、ファイル数などの情報を取得するために反復できます。
次に、iterator_count()
関数を使用して、ディレクトリ内の $iterator
の数を出力します。
コード例:
$iterator = new FilesystemIterator(__DIR__, FilesystemIterator::SKIP_DOTS);
echo "There are ". iterator_count($iterator). " files in the directory";
出力:
There are 4 files in the directory
したがって、FilesystemIterator()
クラスを使用して、ディレクトリ内のファイルをカウントできます。
glob()
および count()
関数を使用して PHP のディレクトリ内のファイルをカウントする
glob()
および count()
関数を使用して、ディレクトリ内のファイル数を取得できます。 glob()
関数は、指定されたパターンに一致するファイルとフォルダーの配列を提供します。
*
を使用して、ディレクトリ内のすべてのファイルを取得できます。 次に、count()
関数を使用して、その配列の要素数を取得できます。
たとえば、$path
変数を作成し、ファイルをカウントするディレクトリの正確なパスを保存します。 次に、glob()
関数を $path
変数に使用し、変数を /*
で連結します。
その結果、myDir
内のすべてのファイルの配列が作成されます。 最後に、glob()
関数の結果に対して count()
関数を使用します。
したがって、myDir
ディレクトリ内のファイルの数を見つけることができます。 以下のコード例は、最初の例で使用されたファイル構造を表しています。
コード例:
$path =$_SERVER['DOCUMENT_ROOT']."/myDir";
$num = count(glob($path . "/*"));
echo $num;
出力:
4
scandir()
および count()
関数を使用して、PHP でディレクトリ内のファイルをカウントする
この方法は、2 番目の方法と同様のアプローチです。 ここでの唯一の違いは、glob()
関数の代わりに scandir()
関数を使用することです。
scandir()
関数へのパラメーターとしてディレクトリ パスを指定できます。 この関数は、.
を含む、ディレクトリ内のすべての内容を含む配列を返します。 と ..
。
次に、count()
関数を使用して、ディレクトリ内のコンテンツの数を取得できます。 最後に、重要な部分は count()
関数の結果から 2
を引き、.
のカウントを削除することです。 と ..
。
したがって、ディレクトリ内のファイルの正確な数を取得できます。
コード例:
$path =$_SERVER['DOCUMENT_ROOT']."/myDir";
$num = count(scandir($path))-2;
echo "there are $num files in the directory";
出力:
there are 4 files in the directory
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn