@topalek

Как поменять атрибуты тега при выводе?

Добрый день всем. Есть блог. Из БД выводится контент. В контенте присутствуют картинки и некоторые пользователь сделал lazy-load
<img class="main-image lazy-load img-responsive" src="/img/loading.svg" alt="ТОП 10: Рейтинг лучших вытяжных вентиляторов" data-src="/uploads/blog/main/thumb/top_950_500.jpg">

Задача стоит поменять значения атрибутов "data-src" и "src" местами до вывода на страницу. Это делается для бота, чтоб при сканировании он обрабатывал картинки с нормальными урлами.
Сложность заключается в том, что картинок в тексте много и не у всех есть "data-src".
Помогите пожалуйста, уже второй день голову ломаю.

UPD: пробовал заменить с помощью вот такой функции
function replaceImageDataSrc($content)
    {
        $dom = new DOMDocument();
        $dom->loadHTML($content);
        $images = $dom->getElementsByTagName('img');

        foreach ($images as $image) {
            $dataSrc = $image->getAttribute('data-src');
            $src     = $image->getAttribute('src');
            $image->setAttribute('src', $dataSrc);
            $image->setAttribute('data-src', $src);
        }

        return $dom->saveHTML();
    }

но не выходит, в контенте где-то есть незакрытые теги и DOMDocument падает в ошибку.
Нужен другой способ
  • Вопрос задан
  • 111 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы