我确定有人已经覆盖了这个,但我没有在网站的快速搜索中找到它。现在我正在尝试从WYSIWYG过滤一些输入,这样它就会删除如下字符:¢©÷μ·¶±€€§¥™但保留HTML字符。我已经尝试了htmlentities和htmlspecialcharacters,但似乎仍然留下了这些角色。任何已经存在的方法,或者任何人有一个很好的正则表达式来处理这个?谢谢!
答案 0 :(得分:1)
如果您使用的是PHP> 5.2.0 Filter可能会有所帮助。
答案 1 :(得分:0)
正则表达式应该起作用:
$ text = preg_replace('/ [¢©÷μ·¶±€€®§™¥] * /','',$ text);
你也可以替换这样的项目:
$ bad = array('©','®'); $ good = array('©','®');
$ text = preg_replace($ bad,$ good,$ text);
答案 2 :(得分:0)
您是否尝试过htmlentities()
功能?试试这样:
$text = htmlentities($text);
您可以在http://php.net/manual/en/function.htmlentities.php查看其他一些可选参数。您可能必须至少设置quote_style
和charset
。
答案 3 :(得分:0)
htmlentities()
和htmlspecialchars()
将不适合您。
修改强>
我刚注意到,有一次你说你想保留HTML实体。如果是这种情况,请使用htmlentities()
!!它会将所有这些符号转换为它们的html实体等价物。如果您回复它,您仍然会看到您尝试删除的字符,但如果您查看源代码,则会看到&name;
格式化的实体。
你可能需要使用正则表达式,尽管很难过。大多数PHP函数都试图以一种或另一种格式为您保留这些字符。令人惊讶的是,至少我知道它们不是去除它们的功能!