В следующем коде я пытаюсь заменить каждое изображение, найденное в $content
, на некоторый html. С $dom->saveHTML($image)
Я получаю изображение html, но str_replace
не заменяет его. Я не знаю почему.Заменить тег изображения на div с помощью DOMDocument и вернуть измененный html
$content = '<div class="content"><img src="some-image.png"></div>';
$dom = new DOMDocument;
$dom->loadHTML($content);
$images = $dom->getElementsByTagName('img');
foreach ($images as $image) {
$i = $dom->saveHTML($image);
$replacement = '<div class="test"><a href="#">some link</a><span>test</span></div>';
$content = str_replace($i, $replacement, $content);
}
// $content should be altered with the previous edits.
return $content;
В конце, $content
должен вернуться:
<div class="content"><div class="test"><a href="#">some link</a><span>test</span></div></div>
Любая идея?
Не используйте str_replace. Это DOM, мы можем использовать replaceChild. – Mouser