Ребят, всем привет. Есть вопросик, не могу найти ответ.
В общем .... сейчас гугл рекомендует владельцам сайтов сделать AMP версии страниц для более лучшего ранжирования в поисковой системе с мобильных устройств. Эту задачку я и пытаюсь победить и попутно сталкиваюсь с проблемками.
У нас есть сайт новостной. Там в базе данных у каждой новости есть поле "полный текст новости". В этом поле содержится HTML верстка текста новости. В верстке могут встречаться и iframe и img и audio .... в общем много разных тегов. Но столкнулся я с проблемкой у именно у IMG:
в верстке некоторых новостей встречаются такие кусочки верстки:
<p><img src="site.ru/kartina1.jpg" width="100"></p>
<p><img src="site.ru/kartina2.jpg" width="100"></p>
<p><img src="site.ru/kartina3.jpg" width="100"></p>
<p><img src="site.ru/kartina4.jpg" width="100"></p>
<p><img src="site.ru/kartina5.jpg" width="100"></p>
<p><img src="site.ru/kartina6.jpg" width="100"></p>
Не сложно заметить отсутствие height у тегов img.
Корректная верстка amp версии каждой img должен выглядеть вот так:
<amp-img layout="responsive"
alt="A view of the sea"
src="site.ru/kartina1.jpg"
width="900"
height="675">
</amp-img>
У меня есть код PHP который немного не справляется со своей задачей:
$article = str_replace('<img', '<amp-img layout="responsive"', $article);
$article = str_replace('</img>', '</amp-img>', $article);
он просто находит "" и меняет их вроде как на правильную конструкцию. И все бы ничего, но в своей базе данных я обнаружил новости у который в html верстке полного текста встречаются img у которых атрибут height не задан. И вот тут мой код не справляется.