@SouthPark

Конкатенация PHP и HTML?

Здравствуйте!
Замучился с этой строкой
echo '<div class="box_img"'. 'style="background: url("' . $images. $row['extra_data']. '") no-repeat center/cover;">';

Перепробовал кучу вариантов и с парными и с одинарными кавычками и экранированием символов
Браузет выдает это:
<div class="box_img" style="background: url(" .. articles images img01.jpg") no-repeat center cover;"></div>


Весь код
<?php
$images = '../articles/images/';
$limit = 18;
$res = mysqli_query($db, "SELECT * FROM `CMS_PAGES`  ORDER BY `ID` LIMIT $limit");

while($row = mysqli_fetch_assoc($res))
{
echo '<div class="box_news">';
echo '<div class="box_img"'. 'style="background: url("' . $images. $row['extra_data']. '") no-repeat center/cover;">';
echo '</div>';
echo '</div>';
}
?>
  • Вопрос задан
  • 116 просмотров
Решения вопроса 2
@SouthPark Автор вопроса
Спасибо, решено:
echo '<div class="box_img" style="background: url(' . $images. $row['extra_data']. ') no-repeat center/cover;">';
Ответ написан
ArsenyMatytsyn
@ArsenyMatytsyn
CEO iAmStudio, предприниматель.
echo '<div class="box_img" style="background: url(' . $images. $row['extra_data']. ') no-repeat center/cover;">'


Если ты формируешь вьюху, то только что выстрелил себе в ногу. Ни один нормальный редактор\IDE не подсветит тебе HTML, который ты формируешь таким образом и гуляй потом ищи глазками, почему вдруг все поломалось.

Оптимально сочетать HTML-синтаксис и PHP-возможности, т.е. так:
<? # PHP-логика при ее наличии ?>
<div 
    class="box_img" 
    style="background: url('<?= $images . $row['extra_data']; ?>') no-repeat center/cover;">
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
megakor
@megakor
PHP погроммист | ru.sarvarov.dev
'<div class="box_img"'. 'style="background: url("'

поменять на

'<div class="box_img" style="background: url("'
Ответ написан
SagePtr
@SagePtr
Еда - это святое
Кавычки внутри атрибутов можно экранировать так:
echo '<div class="box_img"'. 'style="background: url(&quot;' . $images. $row['extra_data']. '&quot;) no-repeat center/cover;">';
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы