0

此代码出现以下语法错误:

警告:natcasesort()期望参数 1 是数组,布尔值在网站/assets/country-gallery-js.php 第 14 行给出

警告:网站/assets/country-gallery-js.php 第 15 行提供的参数foreach()无效

    <?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”文本代码。相反,它显示此语法。

谁能帮我解决这个问题并阻止语法出现?

4

2 回答 2

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!";
}
?>
于 2013-06-26T09:35:06.183 回答
0

我相信使用大括号语法:

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

不会工作,这可能会:

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

检查问题所在的第一步是检查变量 $thumbs 的值。这会告诉您问题可能出在 glob 函数中。

于 2013-06-26T09:32:34.173 回答