Я нашел несколько постов, в которых говорится о проблеме, но ни одно из них не решило ее полностью.
Мне нужна функция, которая будет выводить содержимое, преобразуя все специальные символы так, как это делает htmlentities (), но сохраняя все теги html.
Я пробовал много разных подходов, но, как я упоминал выше, ни один из них не работает так, как ожидалось.
Мне было интересно, есть ли способ сделать это, используя PHP-класс DomDocument.
Я пытался сделать это, используя следующее:
$objDom = new DOMDocument('1.0', 'utf-8');
$objDom->loadhtml($content);
return $objDom->savehtml();
, который работает, но также добавляет всю структуру страницы, т.е.
<head><body> etc.
Мне нужно только преобразовать содержимое переменной $ content и выполнить работу.
Еще одна вещь, о которой стоит упомянуть, это то, что $ content может также содержать некоторые символы, преобразованные в жалобу xhtml - как это происходит из Wysiwyg. Таким образом, он может содержать & и т. Д., Которые также должны быть сохранены.
Кто-нибудь знает способ сделать это с DomDocument - возможно, я должен использовать другой метод сохранения?
Хорошо - я придумала следующее - не очень, но работает на:
$objDom = new DOMDocument('1.0', 'UTF-8');
$objDom->loadHTML($string);
$output = $objDom->saveXML($objDom->documentElement);
$output = str_replace('<html><body>', '', $output);
$output = str_replace('</body></html>', '', $output);
$output = str_replace(' ', '', $output);
return $output;
Любые лучшие идеи будут высоко оценены.