preg_replace — удалить из документа все HTML-теги
Пример взят с http://forum.searchengines.ru/showthread.php?t=209299
<?php // $document на выходе должен содержать HTML-документ. // Необходимо удалить все HTML-теги, секции javascript, // пробельные символы. Также необходимо заменить некоторые // HTML-сущности на их эквивалент. $search = array ("'<script[^>]*?>.*?</script>'si", // Вырезает javaScript "'<[\/\!]*?[^<>]*?>'si", // Вырезает HTML-теги "'([\r\n])[\s]+'", // Вырезает пробельные символы "'&(quot|#34);'i", // Заменяет HTML-сущности "'&(amp|#38);'i", "'&(lt|#60);'i", "'&(gt|#62);'i", "'&(nbsp|#160);'i", "'&(iexcl|#161);'i", "'&(cent|#162);'i", "'&(pound|#163);'i", "'&(copy|#169);'i", "'&#(\d+);'e"); // интерпретировать как php-код $replace = array ("", "", "\\1", "\"", "&", "<", ">", " ", chr(161), chr(162), chr(163), chr(169), "chr(\\1)"); $text = preg_replace($search, $replace, $document); ?>
Ну а под конкретный случай по примеру)
2020-02-27 Обновлено, в виде функции:
function html_to_text($document){ $search=array( "'<script[^>]*?>.*?</script>'si", "'<style[^>]*?>.*?</style>'si", '/<!--(.*?)-->/', "'<[\/\!]*?[^<>]*?>'si", "'([\r\n])[\s]+'", "'&(quot|#34);'i", "'&(amp|#38);'i", "'&(lt|#60);'i", "'&(gt|#62);'i", "'&(nbsp|#160);'i", ); $replace=array( "", "", "", "", " ", "\"", "&", "<", ">", " ", ); $text=preg_replace($search,$replace,$document); return $text; }
@DVS
Иногда надо опреденные вырезать, а не все с перечислением исключений.
Спасибо, хочу сказать, что кроме того, что есть в коде, можно добавлять свои символы для замены) 6 лет статье, а все популярна! Автору еще раз спасибо!
@К.О.
только хотел написать
Огромное спасибо, очень помогла
Думал комменты накручены, а оказывается код и реально рабочий! Спасибо, давно искал такой)
Спасибо. Всё никак не подружусь с регулярными выражениями.
Спасибо большое! Отличный скрипт! Для моего случая strip_tags не подошел!
олололооололол)) Мне бы функцию поиска всех тегов в тексте и вывода имени тега и его содержимого
Функцией strip_tags гораздо удобнее
strip_tags ? Не, не слышал
(с) автор
Поставил в скрипт и сразу все проблемы решил. Спасибо!