如何只删除字符串中的html标记?

时间:2022-08-27 17:08:38

I have written code for removing HTML tags, but it is also removing a<b type of strings. I want it to not to remove strings like 2<3 or a<b.

我已经编写了删除HTML标记的代码,但是它也删除了 类型的字符串。我不希望删除2

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

How do I remove html tags in a string, without removing LT or GT?

如何在不删除LT或GT的情况下删除字符串中的html标记?

5 个解决方案

#1


9  

Sorry I had not validate enough.

对不起,我没有验证足够。

I have checked php5-cli expression below.

我已经检查了下面的php5-cli表达式。

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

PHP code goes:

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";

?>

Result:

结果:

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

#2


8  

Use strip tags function of php

使用php的带标签函数

echo strip_tags($html)

#3


1  

Strip_tags function is good solution.

Strip_tags函数是一个很好的解决方案。

But if you need regex, use expression below.

但是如果您需要regex,请使用下面的表达式。

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

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

#4


1  

Remove all HTML tags from PHP string with content!

Let say you have string contains anchor tag and you want to remove this tag with content then this method will helpful.

假设你有一个包含锚标记的字符串,你想要删除这个带有内容的标签,那么这个方法会很有用。

$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);

 }

Output:

输出:

a < b

< b

Retrieved from: Remove all html tags from php string

从:从php字符串中删除所有html标记

#5


-1  

Use strip_tags

使用strip_tags

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

#1


9  

Sorry I had not validate enough.

对不起,我没有验证足够。

I have checked php5-cli expression below.

我已经检查了下面的php5-cli表达式。

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

PHP code goes:

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";

?>

Result:

结果:

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

#2


8  

Use strip tags function of php

使用php的带标签函数

echo strip_tags($html)

#3


1  

Strip_tags function is good solution.

Strip_tags函数是一个很好的解决方案。

But if you need regex, use expression below.

但是如果您需要regex,请使用下面的表达式。

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

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

#4


1  

Remove all HTML tags from PHP string with content!

Let say you have string contains anchor tag and you want to remove this tag with content then this method will helpful.

假设你有一个包含锚标记的字符串,你想要删除这个带有内容的标签,那么这个方法会很有用。

$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);

 }

Output:

输出:

a < b

< b

Retrieved from: Remove all html tags from php string

从:从php字符串中删除所有html标记

#5


-1  

Use strip_tags

使用strip_tags

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