#php #html #arrays
#php #HTML #массивы
Вопрос:
Я пытаюсь распечатать изображения с помощью цикла for, но изображения не загружаются.
<?php
$imagenes = array('1.png', '2.jpg', '3.png', '4.jpg','IMG_0105.JPG');
?>
<div class="container">
<div class="row">
<div class="col-md">
<?php
for ($i=0; $i < 4; $i ) {
echo '<img src = "$imagenes[$i]" width = '100px' height = '100px';>';
}
?>
</div>
</div>
</div>
Изображения находятся в той же папке, что и файл .php
Комментарии:
1.
echo "<img src='$imagenes[$i]' width='100px' height='100px'>";
Ответ №1:
Редактировать: Добавлены дополнительные решения, основанные на ответе от @nik
Это никогда не сработает, потому что переменные не вычисляются внутри строк, заключенных в одинарные кавычки.
Убедитесь, что вы используете строку в двойных кавычках. Или используйте конкатенацию строк для создания HTML-тега. Кроме того, в вашем теге image есть точка с запятой внутри, которая может нарушить работу тега.
Итак, вы можете сделать это…
echo "<img src="{$imagenes[$i]}" width="100px" height="100px">";
или
echo "<img src="" . $imagenes[$i] . "" width="100px" height="100px">";
или
<img src="<?= $imagenes[$i]; ?>" width="100px" height="100px">
или
<img src="<?php echo $imagenes[$i]; ?>" width="100px" height="100px">
Ответ №2:
Используйте foreach для этого. А для объединения строки с var — используйте . (точка)
<?php
foreach ($imagenes as $image) {
echo '<img src = "'.$image.'" width = "100px" height = "100px">';
}
?>
Ответ №3:
Это упростило бы задачу:
<div class="container">
<div class="row">
<div class="col-md">
<?php foreach ($imagenes as $url) { ?>
<img src="<?php echo $url ?>" width="100px" height="100px">
<?php } ?>
</div>
</div>
</div>
Ответ №4:
Я думаю, что это способ экранирования символов, вы можете просто использовать конкатенацию на $images
:
<div class="container">
<div class="row">
<div class="col-md">
<?php
for ($i=0; $i < 4; $i ) {
echo '<img src = '.$imagenes[$i].' width="100px" height ="100px";>';
}
?>
</div>
</div>
</div>