将srcset添加到自动生成的PHP库中

时间:2019-05-01 10:38:52

标签: php html

我有一个用PHP编写的画廊脚本,该脚本基于存储在给定文件夹中的图像生成一个画廊。对于直截了当的图库来说,这很好用,但是我想添加一个srcset值,该值从高清晰度屏幕上标记为“大”的文件夹中的图像生成图库。

我试图通过包含一个名为$ imagesBig的变量来复制生成小图像的代码部分,但这只是为生成的每张图片回显文件夹中的最终图像。

每个文件夹中的文件名相同,只是文件夹变量更改。

<?php 
 $rsContent = "rsContent";
 $imgContainer = "imgContainer";

 $directoryBig = "img/acts/".$category."/".$thisPage."/gallery/big/";
 $imagesBig = glob($directoryBig . "*.jpg");
 foreach($imagesBig as $imageBig);

 $directorySmall = "img/acts/".$category."/".$thisPage."/gallery/small/";
 $imagesSmall = glob($directorySmall . "*.jpg");
 foreach($imagesSmall as $imageSmall) {

 echo "<div class=" .$rsContent. "><div class=" .$imgContainer. "><img src=" .$imageSmall. " srcset='$imageSmall 1x, $imageBig 2x' alt=" .$thisPage. " /></div></div>";

}

?>

我希望最终的输出看起来像这样:

<div class="rsContent">
 <div class="imgContainer">
  <img src="img/acts/theater/kikkerkusje/gallery/small/1.jpg" srcset="img/acts/theater/kikkerkusje/gallery/small/1.jpg 1x, img/acts/theater/kikkerkusje/gallery/big/1.jpg 2x" alt="kikkerkusje">
 </div>
</div>

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

问题是您有两个完全独立的循环,“大”循环实际上不做任何事情(;末尾的foreach())只是在循环上进行了迭代而没有输出。

您需要组合两组结果,这是假定图像列表将在每个目录中以相同的顺序出现(有点脆弱-如果可能会出现问题,最好对列表进行排序)。

首先获取大图像列表,然后在循环输出小图像时,选择匹配的大图像(使用$imagesBig[$index])...

$directoryBig = "img/acts/".$category."/".$thisPage."/gallery/big/";
$imagesBig = glob($directoryBig . "*.jpg");

$directorySmall = "img/acts/".$category."/".$thisPage."/gallery/small/";
$imagesSmall = glob($directorySmall . "*.jpg");
foreach($imagesSmall as $index=>$imageSmall) {

     $imageBig = $imagesBig[$index];
     echo "<div class=" .$rsContent. "><div class=" 
          .$imgContainer. "><img src=" .$imageSmall
          . " srcset='$imageSmall 1x, $imageBig 2x' alt=" 
          .$thisPage. " /></div></div>";

}