我想在XML节点中写一个字符串,但是在这之前我必须删除任何禁用的字符。我找到了以下作品:
preg_replace("/[^\\x0009\\x000A\\x000D\\x0020-\\xD7FF\\xE000-\\xFFFD]/", "", $var)
然而,它删除了我想要保留的很多字符。例如space
,;
,&
,<
,>
\
和/
。
我做了一些搜索,发现空间为x0020
所以我首先尝试通过将上面的代码更改为空格来允许空格:
preg_replace("/[^\\x0009\\x000A\\x000D\\x0021-\\xD7FF\\xE000-\\xFFFD]/", "", $var)
但它仍会删除空格。我只是想删除那些奇怪的隐藏“命令”字符。我怎么能这样做?
编辑:我之前使用$var
制作了htmlspecialchars()
,因此我希望保留&
和;
答案 0 :(得分:0)
您是否需要在正则表达式的末尾添加“u”,因此PHP知道您希望Unicode匹配?另请参阅UTF-8 in PHP regular expressions
我也想知道你是否想用空格替换那些字符,而不是什么。取决于你正在做什么,但是既然你正在删除换行符,那么就可以在各行之间加入单词。