0

このコードには次の構文エラーがあります。

警告:パラメーター 1 は、14 行目のWeb サイト/assets/country-gallery-js.php でnatcasesort()指定されたブール値の配列であると予想されます

警告:ウェブサイト/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 が保持する値の種類を確認することです。これは、問題がおそらくグロブ関数内にあることを示しています。

于 2013-06-26T09:32:34.173 に答える