bazilio2010
@bazilio2010
Мужчина

Как убрать родительский тег P у картинки?

Есть текст с разметкой html. Редактор оборачивает картинки в параграфы.
Получается такая ерунда:
<p><img src""></p>
<p><img src""></p>
<p>текст<p>


А нужно просто
<img src"">
<img src"">
<p>текст<p>


Как убрать эти P вокруг картинок и можно ли сделать через DOMDocument?
Заранее благодарю за ответы
  • Вопрос задан
  • 424 просмотра
Решения вопроса 1
@miksir
IT
Через дом, конечно, можно. Но это может быть довольно затратно, а так как эти теги вставляет ваш редактор (т.е. структура достаточно детерминирована), то много проще обойтись регекспом.
preg_replace('/<p>(<img[^>]+>)<\/p>/', '$1', $html)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
twobomb
@twobomb
Лучше всего разбирайся со своим редактором, потому-что так как ты хочешь это называется костыли.
Ну если очень нужно, то вот код. Он убирает тег p только если внутри него находится одна картинка. Особо не тестил, так что проверяй.
$("p").each(function(i, el) {
  if (el.children.length == 1 && el.children[0].nodeName == "IMG") {
    $(el).after(el.children[0]);
    $(el).remove();
  }
});
Ответ написан
gds1
@gds1
Пыха - это наше всё)))
делаем
str_replace("", "", $i);
Ответ написан
Ваш ответ на вопрос

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

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