2015-08-27 398 views
0

即時通訊嘗試使用foreach循環與插件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> 

在先進的感謝球員

+0

$ images和$ images 2都是數組,但是您只分配一次$ fullImgs的值 - 所以您的foreach只會運行一次。 –

+0

當然,你不希望這兩件事發生在同一個地方,即使他們都工作 – RiggsFolly

回答

0

試試這個:

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

我想你想要的是這樣的:

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

沒有測試,但應該給這個想法...

0

您的代碼不會像這樣工作。如果我正確地理解了你,你可以在兩個不同的目錄中以大小格式顯示相同的圖像。要將它們顯示爲一對,您需要在這兩個文件之間建立連接 - 因爲您的腳本應該如何知道哪些圖像屬於一起?你可以使用數據庫,但在你的情況下,我認爲在文件名中建立連接更容易。例如,名稱爲小圖像

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