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

pus*_*hpa 10 php regex

我编写了用于删除HTML标记的代码,但它也删除a<b了字符串类型.我希望它不要删除像2<3或的字符串a<b.

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

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

小智 10

对不起,我没有足够的验证.

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

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

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

?>
Run Code Online (Sandbox Code Playgroud)

结果:

text--->
a<b 1<2 3>1 
1>2
hello world
hello world<> google com
abcde
Run Code Online (Sandbox Code Playgroud)


小智 8

使用php的strip标签功能

echo strip_tags($html)
Run Code Online (Sandbox Code Playgroud)

  • 我使用了strip_tags(),但这将从"a <b"中删除"<b". (3认同)