如何将多个图像回显到同一div

时间:2018-11-16 07:52:10

标签: php html image foreach echo

我试图建立一个网站,将目录中的所有图像回显到页面,但是当我回显它们时,它将为每个图像创建一个单独的div。

  foreach($images as $img) {
  echo "<div class=\"container\"><img class=\"photo\" src=\"{$img['file']}\" {$img['size'][3]} alt=\"\">\n</div>";
  }

4 个答案:

答案 0 :(得分:5)

<div>放在foreach()循环中:

echo '<div class="container">';
foreach($images as $img) {
  echo "<img class=\"photo\" src=\"{$img['file']}\" {$img['size'][3]} alt=\"\">";
  }
echo '</div>';

答案 1 :(得分:1)

您必须将div放在foreach之外

echo "<div class=\"container\">"; 
foreach($images as $img) {
  echo "<img class=\"photo\" src=\"{$img['file']}\" {$img['size'][3]} alt=\"\">";
 }
echo "</div>";

使用您的实际代码,您可以在每个循环中创建一个<div>

答案 2 :(得分:1)

请尝试此解决方案,也许它可以为您提供帮助:

echo "<div class='container'>";
foreach ($images as $img) {
    echo "<img class='photo' src='{$img['file']}' {$img['size'][3]} alt=''>\n</div>";
}
echo "</div>";

答案 3 :(得分:0)

不知道为什么要在PHP方面做所有事情,但是要尽可能避免在PHP中使用HTML,因为它的编码很脏。

我会:
1.将图像设置为变量;
2.将变量发送到html模板;
3.将其循环到以html为主导的模板中;

如果您绝对必须在PHP中使用HTML,那么我会采用sprintf方法;

echo '<div class="container">';
foreach ($images as $img) {
    echo sprintf(
        '<img src="%s" class="img-rounded" alt="%s">',
        $img['file'],
        $img['filename']
    );
}
echo '</div>';

我发现这种方式更清楚