Я пытаюсь создать сайт, который будет отображать все изображения в каталоге на странице, но когда я повторяю их, он создает отдельный div для каждого.
foreach($images as $img) {
echo "<div class=\"container\"><img class=\"photo\" src=\"{$img['file']}\" {$img['size'][3]} alt=\"\">\n</div>";
}
Поместите <div>
вокруг вашего foreach()
цикл:
echo '<div class="container">';
foreach($images as $img) {
echo "<img class=\"photo\" src=\"{$img['file']}\" {$img['size'][3]} alt=\"\">";
}
echo '</div>';
Вы должны поместить div вне foreach
echo "<div class=\"container\">";
foreach($images as $img) {
echo "<img class=\"photo\" src=\"{$img['file']}\" {$img['size'][3]} alt=\"\">";
}
echo "</div>";
С вашим реальным кодом вы создаете <div>
каждый цикл
Пожалуйста, попробуйте это решение, может быть, оно может помочь вам:
echo "<div class='container'>";
foreach ($images as $img) {
echo "<img class='photo' src='{$img['file']}' {$img['size'][3]} alt=''>\n</div>";
}
echo "</div>";
Не уверен, почему вы все делаете на стороне PHP, но избегайте HTML в PHP как можно больше, потому что это грязное кодирование.
Я мог бы:
1. Установите изображения в переменную;
2. Отправьте переменную в шаблон HTML;
3. Зациклите его в шаблоне, где преобладает HTML;
Если вам абсолютно необходимо сделать HTML в PHP, я бы выбрал подход 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>';
Я нахожу это понятнее