Как удалить только теги html в строке?
Я написал код для удаления HTML-тегов, но он также удаляет типы строк a<b
. Я хочу, чтобы он не удалял строки типа 2<3
или a<b
.
$term="a<b";
echo "Text is--->".preg_replace('/(?:<|<).+?(?:>|>)/', '', $term);
Как удалить теги html в строке, не удаляя LT или GT?
Ответы
Ответ 1
Извините, я не подтвердил достаточно.
Я проверил выражение php5-cli ниже.
(?:<|<)\/?([a-zA-Z]+) *[^<\/]*?(?:>|>)
Код 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('/(?:<|<)\/?([a-zA-Z]+) *[^<\/]*?(?:>|>)/', '', $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 - хорошее решение.
Но если вам нужно регулярное выражение, используйте выражение ниже.
(?:<|<)\/?([a-z]+) *[^\/(?:<|<)]*?(?:>|>)
Ответ 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>");