За последние 24 часа нас посетили 16746 программистов и 1643 робота. Сейчас ищут 962 программиста ...

Подсчет картинок

Тема в разделе "Прочие вопросы по PHP", создана пользователем Nikolai_, 17 мар 2011.

  1. Nikolai_

    Nikolai_ Активный пользователь

    С нами с:
    27 авг 2010
    Сообщения:
    133
    Симпатии:
    0
    Есть вот такой скрипт. Считает файлы изображений. Подскажите, как запретить подсчет фото в определенной папке, например, в tmp (1-й уровень вложенности - вложена в папку gallery)?
    PHP:
    1. <?php
    2. function dirList($dir){
    3.     $dirList = array();
    4.     if ($objs = glob($dir."/gallery/*/*")) {
    5.         foreach($objs as $obj) {
    6.             if(is_dir($obj) and $obj != '.' and $obj != '..'){
    7.                 $dirList[] = $obj;
    8.             }
    9.         }
    10.     }
    11.     return $dirList;
    12. }
    13.  
    14. function jpg_count($dir){
    15.     if(is_dir($dir)){
    16.         return count(glob($dir."/*.jpg"));
    17.     }
    18.     else {
    19.         return 0;
    20.     }
    21. }
    22.  
    23. $dirList = dirList('.');
    24. $jpgCount = 0;
    25. foreach($dirList as $dir){
    26.     $jpgCount += jpg_count($dir);
    27. }
    28.  
    29. echo (" (" . $jpgCount . " фото)");
    30. ?>
     
  2. Shumomer

    Shumomer Активный пользователь

    С нами с:
    12 мар 2011
    Сообщения:
    194
    Симпатии:
    1
    Адрес:
    из вашего вображения
    Примитивный вариант:
    PHP:
    1.  function jpg_count($dir){
    2.      if(is_dir($dir) && substr($dir,-3)!='tmp'){
    3.          return count(glob($dir."/*.jpg"));
    4.      }
    5.      else {
    6.          return 0;
    7.      }
    8.  }
     
  3. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Shumomer
    Чем твой вариант лучше такого?

    PHP:
    1. <?php
    2.  
    3. $images = count(glob('*.jpg));
    =)
     
  4. Shumomer

    Shumomer Активный пользователь

    С нами с:
    12 мар 2011
    Сообщения:
    194
    Симпатии:
    1
    Адрес:
    из вашего вображения
    Не лучше. Отличается - вот этой проверкой:
    PHP:
    1. substr($dir,-3)!='tmp'
    Это просто ответ на вопрос ТС что изменить в данном им скрипте что-бы не считались джипеги в папке тмп.

    ЗЫ Ты вобще вопрос ТС читал?
     
  5. Nikolai_

    Nikolai_ Активный пользователь

    С нами с:
    27 авг 2010
    Сообщения:
    133
    Симпатии:
    0
    Shumomer

    Что-то не получается... Все так же считает, в том числе и в tmp. Там вот какая структура. Есть папка gallery. В ней папки - tmp, gallery_1, gallery_2 и т.д. В этих папках есть подпапки album_1, album_2 и т.д., а уже в них - картинки. Так вот скрипт должен считать эти картинки в папках gallery_1,2 и т.д., но не в tmp. Как это сделать?