Пытаюсь вставить текст с html тегами в блок на странице:
$content = File::get($path_to_file);
$crawler = new Crawler($content);
$elem = $crawler->filter('#main_text');
if ($elem->count() > 0) {
$dom = $elem->getNode(0);
$dom->nodeValue = 'Мой <br> текст: <span>ТЕСТ</span>?';
}
File::put($path_to_file2, $crawler->html());
В итоге, текст в нужном блоке странице изменился, но при открытии страницы в блоке текст отображается с HTML тэгами, то есть они не применены на странице (<br>).
Как можно сделать, чтобы HTML теги сохранялись в найденных элементах?
UPDATE:
Добавление HTML тегов получилось сделать так:
$content = File::get($path_to_file);
$crawler = new Crawler($content);
$elem = $crawler->filter('#main_text');
if ($elem->count() > 0) {
$newHtml = 'Мой <br> текст: <span>ТЕСТ</span>?';
$newCrawler = new Crawler($newHtml);
$elem->getNode(0)->nodeValue = '';
foreach ($newCrawler as $node) {
$importedNode = $elem->getNode(0)->ownerDocument->importNode($node, true);
$elem->getNode(0)->appendChild($importedNode);
}
}
File::put($path_to_file2, $crawler->html());
Но теперь появилась другая проблема, при добавлении нового текста в блок по ID, добавляется в начале текста и в конце теги:
<p>Мой <br> текст: <span>ТЕСТ</span>?</p>