Мне нужно вставить изображение с элементом div в середине статьи. Страница генерируется с использованием PHP из CRM. У меня есть процедура для подсчета символов для всех тегов абзаца и вставки HTML после абзаца, который имеет 120-й символ. Я использую appendXML
, и это работает, пока я не попытаюсь вставить элемент изображения.
Когда я вставляю элемент <img>
, он удаляется. Я понимаю, что он ищет XML, однако закрываю тег <img>
, который, как я понял, поможет.
Есть ли способ использовать appendXML
, а не удалять элементы img?
$mcustomHTML = "<div style="position:relative; overflow:hidden;"><a href="https://example.com/code=123456"><img src="https://s3.amazonaws.com/a.example.com/image.png" alt="No image" /></img></a></div>";
$doc = new DOMDocument();
$doc->loadHTML('<?xml encoding="utf-8" ?>' . $content);
// read all <p> tags and count the text until reach character 120
// then add the custom html into current node
$pTags = $doc->getElementsByTagName('p');
foreach($pTags as $tag) {
$characterCounter += strlen($tag->nodeValue);
if($characterCounter > 120) {
// this is the desired node, so put html code here
$template = $doc->createDocumentFragment();
$template->appendXML($mcustomHTML);
$tag->appendChild($template);
break;
}
}
return $doc->saveHTML();