fotorama 的 Foreach 循环

Foreach loop for fotorama

我正在尝试将 foreach 循环与插件 fotorama 一起使用。

我想做的是为主画廊图片加载一半大小的图片。我在 foreach 中工作,但我想为数据完整标签使用完整图像,但我无法让它工作。

这是工作代码。

<div class="fotorama"
                 data-allowfullscreen="native"
                 data-nav="thumbs"
                 data-fit="scaledown"
                 data-width="100%"
                 data-height="100%"
                 data-arrows="true"
                 data-click="true"
                 data-swipe="true">
                <?php
                      $dirname = "admin/image-upload/uploads/";
                      $images = glob($dirname."*.*");
                      foreach($images as $image) {
                      echo '<img src="'.$image.'" /><br />';
                      }
                ?>
            </div>

这就是我想要做的。

<div class="fotorama"
                 data-allowfullscreen="native"
                 data-nav="thumbs"
                 data-fit="scaledown"
                 data-width="100%"
                 data-height="100%"
                 data-arrows="true"
                 data-click="true"
                 data-swipe="true">
                <?php
                      $dirname = "admin/image-upload/uploads/";
                      $images = glob($dirname."*.*");
                      $dirname2 = "admin/image-upload/full/";
                      $images2 = glob($dirname2."*.*");
                      $fullImgs = "<img data-full=".$image2." src=".$image." /><br />";
                      foreach($fullImgs as $fullImg) {
                      echo $fullImg;
                      }
                ?>


            </div>

感谢先进的家伙

试试这个:

$dirname = "admin/image-upload/uploads/";
$images = glob($dirname."*.*");
$dirname2 = "admin/image-upload/full/";
$images2 = glob($dirname2."*.*");
$array = array_merge($images, $images2);

// Supossing both array have same length
$length = count($images);
for($i = 0; $j = $length; $i < $length; $i++, $j++) {
    echo '<img data-full=".$images2[$j]." src=".$images[$i]." /><br />';
}

我想你想要的是这个:

<?php
  $dirname = "admin/image-upload/uploads/";
  $images = glob($dirname."*.*");
  $dirname2 = "admin/image-upload/full/";
  $images2 = glob($dirname2."*.*");
  //assuming $images and $images2 are the same length...
  foreach ($images as $k => $v) {
    echo "<img data-full=".$images2[$k]." src=".$v." /><br />";
  }
?>

没测试过,但应该给出思路...

您的代码不会像这样工作。如果我对你的理解正确的话,你在两个不同的目录中有相同的大格式和小格式图像。要将它们成对显示,您需要在这两个文件之间建立连接 - 因为您的脚本应该如何知道哪些图像属于一起?您可以使用数据库,但在您的情况下,我认为在文件名中建立连接更容易。比如将目录下的图片命名为小图

Image_7263.png Image_0172.png

等等。对于大图像,您只需将 _BIG 附加到名称的末尾即可。

然后使用 foreach 循环遍历小图像的目录。对于其中的每个图像,您将 _BIG 附加到文件名的末尾,并将其包含在大图像的目录中。

$smallImages = glob ("/path/to/small/images/*.*");

foreach ($smallImages as $img)
{
$name = substr ($img, 0, strlen ($img)-4); //Remove the .png or .jpg
$bigImg = "/path/to/big/images/".name."_BIG.jpg"; // or whatever image type you are using
echo "<img data-full=\"".$bigImg."\" src=\"".$img."\" />
}