Если вы хотите преобразовать специальные символы HTML, а не просто удалить их, а также вырезать и подготовить к простому тексту, это было решением, которое мне помогло ...
function htmlToPlainText($str){
$str = str_replace(' ', ' ', $str);
$str = html_entity_decode($str, ENT_QUOTES | ENT_COMPAT , 'UTF-8');
$str = html_entity_decode($str, ENT_HTML5, 'UTF-8');
$str = html_entity_decode($str);
$str = htmlspecialchars_decode($str);
$str = strip_tags($str);
return $str;
}
$string = '<p>this is ( ) a test</p>
<div>Yes this is! & does it get "processed"? </div>'
htmlToPlainText($string);
// "this is ( ) a test. Yes this is! & does it get processed?"`
html_entity_decode w / ENT_QUOTES | ENT_XML1 преобразует такие вещи, как '
htmlspecialchars_decode преобразует такие вещи, как &
html_entity_decode преобразует такие вещи, как '<
и strip_tags удаляет все оставшиеся HTML-теги.
РЕДАКТИРОВАТЬ - Добавлены str_replace ('', '', $ str); и несколько других html_entity_decode (), поскольку продолжение тестирования показало необходимость в них.