Как удалить только теги html в строке?

Я написал код для удаления HTML-тегов, но он также удаляет типы строк a<b. Я хочу, чтобы он не удалял строки типа 2<3 или a<b.

$term="a<b";
echo "Text is--->".preg_replace('/(?:<|&lt;).+?(?:>|&gt;)/', '', $term);

Как удалить теги html в строке, не удаляя LT или GT?

Ответ 1

Извините, я не подтвердил достаточно.

Я проверил выражение php5-cli ниже.

(?:<|&lt;)\/?([a-zA-Z]+) *[^<\/]*?(?:>|&gt;)

Код PHP:

#!/usr/bin/php 
<?php

$str = "<html></html>
a<b 1<2 3>1 
<body>1>2</body>
<style file=\"'googe'\" alt=\"google\">hello world</style>
<have a good efghijknopqweryuip[]asdfgghjkzxcv bnm,.me>hello world<> google com</s>
<a se=\"font: googe;\">abcde</a>";

echo "text--->".preg_replace('/(?:<|&lt;)\/?([a-zA-Z]+) *[^<\/]*?(?:>|&gt;)/', '', $str)."\n";

?>

Результат:

text--->
a<b 1<2 3>1 
1>2
hello world
hello world<> google com
abcde

Ответ 2

Использовать функцию strip the php

echo strip_tags($html)

Ответ 3

Функция Strip_tags - хорошее решение.

Но если вам нужно регулярное выражение, используйте выражение ниже.

(?:<|&lt;)\/?([a-z]+) *[^\/(?:<|&lt;)]*?(?:>|&gt;)

Ответ 4

Удалите все теги HTML из строки PHP с содержимым!

Скажем, у вас есть строка, содержащая тег привязки, и вы хотите удалить этот тег с контентом, тогда этот метод будет полезен.

$srting = '<a title="" href="/index.html"><b>Some Text</b></a> a<b';

echo strip_tags_content($srting);

function strip_tags_content($text) {

    return preg_replace('@<(\w+)\b.*?>.*?</\1>@si', '', $text);

 }

Вывод:

a < б

Источник: Удалить все теги html из строки php

Ответ 5

Используйте strip_tags

//If you want to allow some tags
$term = strip_tags($term,"<b>");