2013-06-26 35 views
0

水珠图像目录扫描我有这个代码的语法如下错误:无效的语法 - 用于传送带

警告:natcasesort()预计参数1是数组,布尔在网站 /资产/国家画廊,JS给上线14 .PHP

警告:网站 /assets/country-gallery-js.php为foreach()无效的论点提供在线路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!"; 
    } 
    ?> 

我不确定为什么。该代码扫描图像的文件夹以显示为轮播。它扫描缩略图和大图像文件夹灯箱。当图像在文件夹中时,它就像是一种享受。当文件夹为空时,它应该回显'其他'文本代码。相反,它显示了这种语法。

任何人都可以帮我找出这一个,并停止出现的语法?

+0

所以,即使目录是空的,$ thumbs必须返回一些东西。后续代码var_dump($大拇指); – karmafunk

+0

是的,它是返回上述错误指向的行:\t \t \t \t \t \t \t natcasesort($ thumbs); \t \t \t \t \t \t \t \t的foreach($大拇指为$拇指){ –

+0

写出$才把大拇指natecasesort。实际上使用exit;和只是vardump($拇指); – 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

:)无后顾之忧,谢谢 –