5

次のようなディレクトリ構造に画像が保存されています。

  • 画像
    • foo
      • 親指
        • awefawef.jpg
        • dtyhtyh.jpg
      • 満杯
        • awefawef.jpg
        • dtyhtyh.jpg
        • eriguherg.jpg
    • バー
      • 親指
        • erg.jpg
      • 満杯
        • erg.jpg
        • tyjhr5g.jpg
    • some_other_dir
    • など..。

(注:「thumb」ディレクトリには、隣接する「full」ディレクトリと同じ数のイメージが常に存在するとは限りません。)

したがって、PHPを使用して、すべての「フル」ディレクトリ内の画像の総数をカウントする必要があります。

「画像」のすべてのサブディレクトリのリストを取得し、それらを循環して、それぞれの「フル」フォルダ内の画像を数えることで、これを行う方法を見つけることができると確信しています。しかし、各フォルダに数百の画像を含む数千のディレクトリが存在するため、可能な限り最も効率的なソリューションを探しています。これは、サイトでかなり頻繁に実行する必要があります。

ここで最も効率的なアプローチは何ですか?

4

3 に答える 3

15

これは、あなたが概説した状況で機能します:

$imagecount = count(glob("images/*/full/*.jpg"));
于 2012-08-02T18:50:13.003 に答える
2
$count = count(glob("images/*.jpg"));

echo "In images have $count images";
于 2013-07-01T08:35:08.370 に答える
0

これを試して:-

<?php

$directory='images';
$count=0;
$full_images='';

if($handle = opendir($directory)) {

  while (false !== ($file = readdir($handle))) {

    if(is_dir($directory.'/'.$file))
    {
    if($handle1 = opendir($directory.'/'.$file."/full")) {

      while (false !== ($file1 = readdir($handle1))) {
        if(!is_dir($file1))
         {
            $count=$count+1;
        $full_images[$file]['full'][]=$file1;
          } 
      }
    }
    }
  }

closedir($handle);
}

echo "Total count images in all of the full directories in: <b>".$count."</b> <br />";

foreach($full_images as  $k => $v)
{
  foreach($v as $key)
  {
    echo "Total count images in ".$k."\'s full directory in:  <b>".count($key)."</b><br />";
  }

}
?>
于 2012-08-02T18:47:04.197 に答える