Каков наилучший способ вырезать все теги html из строки?

Используя PHP, задайте строку, такую ​​как: this is a <strong>string</strong> ; Мне нужна функция, чтобы вырезать ВСЕ теги html, чтобы выход был следующим: this is a string . Есть идеи? Заранее спасибо.

PHP имеет встроенную функцию, которая делает именно то, что вы хотите: strip_tags

 $text = '<b>Hello</b> World'; print strip_tags($text); // outputs Hello World 

Если вы ожидаете выхода из строя HTML, вам нужно будет загрузить его в DOM-парсер, а затем извлечь текст.

Как насчет использования strip_tags , который должен выполнять только работу?

Например, (цитируя документ) :

 <?php $text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>'; echo strip_tags($text); echo "\n"; 

дам тебе :

 Test paragraph. Other text 

Изменить: но обратите внимание, что strip_tags не подтверждает, что вы ему даете. Это означает, что этот код:

 $text = "this is <10 a test"; var_dump(strip_tags($text)); 

Вы получите:

 string 'this is ' (length=8) 

(Все после того, как вещь, похожая на стартовую метку, удаляется).

strip_tags – это функция, которой вы strip_tags . Вы использовали бы это что-то вроде этого

 $text = '<strong>Strong</strong>'; $text = strip_tags($text); // Now $text = 'Strong' 

Я считаю, что это немного более эффективно, чем strip_tags () , поскольку strip_tags () не будет блокировать javascript или css:

 $search = array( "'<head[^>]*?>.*?</head>'si", "'<script[^>]*?>.*?</script>'si", "'<style[^>]*?>.*?</style>'si", ); $replace = array("","",""); $text = strip_tags(preg_replace($search, $replace, $html));