2013-06-26 3 views
0

У меня есть следующая ошибка синтаксиса с этим кодом:Неверный синтаксис - Glob каталог изображений сканирования каруселью

Предупреждение: natcasesort() ожидает параметр 1, чтобы быть массив, булева приведены в Сайт/активы/страна-галерея-JS .php на линии 14

Предупреждение: Неверный аргумент, поставляемый для foreach() в сайт /assets/country-gallery-js.php на линии 15

<?php $thumbs = glob("img/thumb/*.{jpg,png,gif}", GLOB_BRACE); ?> 
    <?php 
    if(count($thumbs)) { 
     natcasesort($thumbs); 
     foreach($thumbs as $thumb) {?> 
      <li class="item"> 
       <a class="fancybox" rel="gallery1" href="img/large/<?php echo basename($thumb) ?>"> 
        <img src="<?php echo $thumb ?>" class="img-circle" width="100%" alt="" /> 
       </a> 
      </li> 
     <?php 
     } 
    } 
    else { 
     echo "Sorry, no images to display!"; 
    } 
    ?> 

Я не уверен, почему. Код сканирует папку для изображений, отображаемых в виде карусели. Он просматривает миниатюру и папку больших изображений для . Лайтбоксы. Когда изображения находятся в папке, это работает как удовольствие. Когда папка пуста, она должна повторять текстовый код «else». Вместо этого он отображает этот синтаксис.

Может ли кто-нибудь помочь мне понять это и прекратить появление синтаксиса?

+0

Так что, хотя каталог пуст, $ thumbs должно что-то возвращать. var_dump ($ превью); – karmafunk

+0

Да, она возвращается вышеуказанную ошибку, указывающую на линии: \t \t \t \t \t \t \t natcasesort ($ превью); \t \t \t \t \t \t \t \t Еогеасп (пальцы как $ эмпирическое $) { –

+0

Выпишите $ недурно, прежде чем попасть в natecasesort. фактически использовать выход; и просто vardump ($ thumbs); – karmafunk

ответ

1
Use is_array instead of count 
<?php $thumbs = glob("img/thumb/*.{jpg,png,gif}", GLOB_BRACE); ?> 
<?php 
if (is_array($thumbs)) { 
    natcasesort($thumbs); 
    foreach ($thumbs as $thumb) { 
     ?> 
     <li class="item"> 
      <a class="fancybox" rel="gallery1" href="img/large/<?php echo basename($thumb) ?>"> 
       <img src="<?php echo $thumb ?>" class="img-circle" width="100%" alt="" /> 
      </a> 
     </li> 

     <?php 
    } 
} else { 
    echo "Sorry, no images to display!"; 
} 
?> 
+0

Вот и все! Большое спасибо, я понимаю проблему сейчас –

0

Я считаю, что с помощью синтаксиса фигурных скобок:

glob("img/thumb/*.{jpg,png,gif}", GLOB_BRACE); 

не будет работать, это, вероятно, будет:

glob("img/thumb/*.jpg,img/thumb/*.png,img/thumb/*.gif", GLOB_BRACE); 

Первый шаг к тому, что вы должны сделать, чтобы проверить, где проблема является проверить, что вид значения, который имеет переменная $ thumbs. Это сказало бы вам, что проблема, вероятно, лежит в функции glob.

+0

Спасибо за ответ. К сожалению, ничего не изменилось. Проблема в том, что массив был бы лучше –

+0

А, да, я пропустил часть, когда изображения находятся в папке, мой плохой –

+0

:) не беспокоится, спасибо, хотя –