Заменить все теги на p

195
19 декабря 2016, 19:39

Имеется HTML-разметка в текстовой переменной. Как можно заменить все теги в этой разметке на тег p? Есть ли стандартные функции PHP для этого? strip_tags() не подходит, так как просто убирает теги, а нужно именно заменить.

Answer 1
<?php
$str = '<div>DIV</div>
<a href="">A</a>
<span>SPAN</span>';
$dom = new DomDocument;
$dom->loadHTML($str);
$xpath = new DOMXPath($dom);
$nodes = $xpath->query('//body/*');
foreach($nodes as $node) {
    if($node->nodeType === XML_ELEMENT_NODE) {
        $p = $dom->createElement('p', $node->nodeValue);
        $node->parentNode->replaceChild($p, $node);
    }
}
echo $dom->saveHTML();
Answer 2

Как насчёт варианта с str_replace? Ссылка на документацию

READ ALSO
Как правильно вызвать функцию в php 2 раза?

Как правильно вызвать функцию в php 2 раза?

Код ресайзит(resize) картинки и сохранят в папкуНужно вызвать функцию ресайза, но как-то красиво, чтоб не дублировать код

197
json - вывести только нужные данные

json - вывести только нужные данные

Как пропустить одно (2,3) значение при получении json?

231
Yii2, файл вне web, скачать его

Yii2, файл вне web, скачать его

В проекте на Yii2, я загружаю через форму файлы в папку files, находящуюся в корне проекта, а не в папке web

307
Как внутри echo поставить php код?

Как внутри echo поставить php код?

Как правильно запихать phpкод в php? Пробовал так

222