• 締切済み

【PHP】ディレクトリ内のファイル数を高速で数えたい

レンタルサーバーのPHP5利用者です。 ディレクトリ内にhtmlファイルが3000件ほどあり、そのファイル数を数える方法を考えています。 現状、scandir() を利用していますが5秒ほどかかります。 scandir() はファイル名まで拾ってくるので時間がかかるのだと思いますが数だけでいいので高速で数えられないものでしょうか? できればデータベースではなくPHPだけの処理ならありがたいのですが。 お詳しい方、よろしくお願いいたします。

みんなの回答

回答No.1

単純にファイルの数を調べるだけなら以下の方法はいかがでしょう? exec("ls -d /path/to/* | grep ^ -c", $count); htmlファイルなら exec("ls -d /path/to/* | grep html?$ -c", $count); とかでしょうか。

ikataro
質問者

お礼

ありがとうございます。 $dnv = '/virtual/www/対象のディレクトリ名'; exec("ls -d $dnv/* | grep ^ -c", $ar); print $ar[0]; でやってみましたがあんまり変わりませんでした。 やり方が悪いんでしょうかね…

関連するQ&A

専門家に質問してみよう