我想将所有html代码替换为空白区域。我想我应该使用 preg_replace 函数,但我不知道如果html代码以这种方式显示,我应该怎么做:
”
β
$text="β something ” test..."
$text=preg_replace("&# [what should be here?] ;", " ", $text);
echo $text;
result = something test...
我认为它应该只是数字,因为我在这里只发现数字:http://www.ascii.cl/htmlcodes.htm
答案 0 :(得分:3)
你可以看看strip_tags,它正是这样做的。然而,这些不是HTML代码,它们被称为HTML实体。
匹配您想要的regex如下所示:
(&#.+?;)
非常简单,在&#
之前查找;
然后重复的字符。
编辑:正如Qtax指出的那样,他们不必是数字。 Dot匹配所有。
答案 1 :(得分:2)
HTML字符引用可以是defined in two ways。假设您只想替换数字字符引用,则需要一个解析这些格式的正则表达式:
&#D;
其中D是十进制数&#xH;
其中H是十六进制数正在处理两者的正则表达式:
/&#(\d+|x[\da-f]+);/i
答案 2 :(得分:0)
如果您要替换所有HTML实体,例如&foo;
,您可以使用以下内容:
preg_replace('/&(?:[a-z]+|#x[\da-f]+|#\d+);/i', ' ', $text);
如果要解码它们,请使用html_entity_decode
。
答案 3 :(得分:0)
&<something>;
是HTML实体的语法。如果要替换所有这些,请使用此正则表达式:
preg_replace('/&.*?;/', '', $subject); // from ampersand till the next semicolon
它将使用空字符串替换所有HTML实体,包括ä
,&x20;
和其他