PHP конвертировать html & nbsp; в пробе, & gt; to> и т.д.

Я хочу преобразовать все html-теги (& nbsp & gt; lt и т. Д.) В текстовый формат; Я попробовал

html_entity_decode() 

но он вернется? если & nbsp.

Использовать htmlspecialchars_decode – это противоположность htmlspecialchars . Пример на странице документации PHP:

  $str = '<p>this -&gt; &quot;</p>'; echo htmlspecialchars_decode($str); //Output: <p>this -> "</p> 

html_entity_decode () – это противоположность htmlentities () тем, что он преобразует все объекты HTML в строку в соответствующие символы.

 $orig = "I'll \"walk\" the <b>dog</b> now"; $a = htmlentities($orig); $b = html_entity_decode($a); echo $a; // I'll &quot;walk&quot; the &lt;b&gt;dog&lt;/b&gt; now echo $b; // I'll "walk" the <b>dog</b> now 

использование

  html_entity_decode () 

вместо

  html_entity_encode () 

Если вы проверите руководство html_entity_decode () :

Вы можете задаться вопросом, почему trim (html_entity_decode ('')); не сводит строку к пустой строке, потому что «объект» не является кодом ASCII 32 (который разделяется с помощью trim ()), а кодом ASCII 160 (0xa0) в стандартном наборе символов ISO 8859-1 по умолчанию.

Вы можете вложить функцию html_entity_decode () внутри str_replace () в ASCII # 160 в пространство:

 <?php echo str_replace("\xA0", ' ', html_entity_decode('ABC &nbsp; XYZ') ); ?> 

Я знаю, что мой ответ приходит очень поздно, но думал, что это может помочь кому-то другому. Я считаю, что лучший способ извлечь все специальные символы – использовать utf8_decode () в php. Даже для работы с &nbsp; или любой другой специальный символ, представляющий пустое пространство, использует utf8_decode() .

После использования utf8_decode() можно манипулировать этими символами непосредственно в коде. Например, в следующем коде функция clean () заменяет &nbsp; с пробелом. Затем он заменяет все лишние пробелы одним пробелом, используя preg_replace() . Верхние и конечные пробелы удаляются с помощью trim() .

 function clean($str) { $str = utf8_decode($str); $str = str_replace("&nbsp;", "", $str); $str = preg_replace("/\s+/", " ", $str); $str = trim($str); return $str; } $html = "&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Hello world! lorem ipsum."; $output = clean($html); echo $output; 

Привет мир! lorem ipsum.