这可能是一个愚蠢的问题。我有一个网站运行,允许其用户提交他们的内容。
有些用户正在玩我不想看到的奇怪角色(对我而言)。以下是其中一些:
▄ █ ▄ █ ▄ █ ▄ █ ▄
我可以修剪这些角色是什么样的?我尝试了一些像this这样的方法,但是我怎么能这样做而不必丢失像...等等的html特殊字符。
谢谢
答案 0 :(得分:1)
您可以根据Unicode属性删除字符,如下所示:
// strip out symbols
echo preg_replace('/[\p{S}]+/u', '', 'Hello ▄ █ ▄ █ ▄ █ ▄ █ ▄ World');
// Hello World
您可以在the manual中阅读有关正则表达式的Unicode功能的更多信息。
不幸的是,上述代码也删除了您的版权和商标符号;你可能想考虑为这些字符制作例外,例如:
echo preg_replace('/[^\p{L}\p{Z}©®]+/u', '', 'Hello ▄ █ ▄ █ ▄ █ ▄ █ ▄ World © ®');
答案 1 :(得分:0)
你可以使用htmlentities()或htmlspecialchars()。
ヶ辆()
此函数与htmlspecialchars()在所有方面都相同,除了htmlentities()之外,所有具有HTML字符实体等价物的字符都会被转换为这些实体。
用htmlspecialchars:
某些字符在HTML中具有特殊意义,如果要保留其含义,则应由HTML实体表示。此函数返回一个字符串,其中包含一些转换;所做的翻译是对日常网络编程最有用的翻译。如果您需要翻译所有HTML字符实体,请改用htmlentities()。
区别在于编码。选择是所有(实体)或“特殊”字符,如&符号,双引号和单引号,小于和大于(specialchars)。