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."\" />
}
我正在尝试将 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."\" />
}