用于fotorama的Foreach循环

im trying to use a foreach loop with the plugin fotorama.

What im trying to do is load one half sized image for the main gallery image. Which i have working in a foreach, but i want to use a full image for the data-full tag but i cant get it to work.

This is the working code.

<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>

this is what im trying to do.

<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>

thanks in advanced guys

Try this:

$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 />';
}

I think what you want is this:

<?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 />";
  }
?>

Haven't tested, but should give the idea...

Your code won't work like this. If I understood you correctly you have the same image in big and small format in two different directories. To show them as pair you need to make a connection between those two files - because how should your script know which images belong together? You could use a database, but in your case I think it is easier to make a connection in the filename. For example, name the pictures in the directory for the small images

Image_7263.png Image_0172.png

And so on. For the big images you simply append _BIG to the end of the name.

Then you use your foreach loop to loop through the directory for the small images. For each image in there, you append _BIG to the end of the filename and include it from the directory for the big ones.

$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."\" />
}