我对preg_replace
使用以下内容:
$replace = '/[!\/."",#\s\-:?"]+/';
例如,当我尝试在上面添加'
时,它会在文件中出现错误:
解析错误:语法错误,第38行的... / s.php中的意外T_NS_SEPARATOR
此外,是否有更简单的方法列出要替换的所有符号?
答案 0 :(得分:2)
如果您想摆脱任何符号,请尝试:
$replace = "/[^a-zA-Z0-9 ]/";
^
表示“除了以下内容之外的任何内容”。将要允许的任何字符添加到列表中。它比列出每个符号更容易,并且必须处理转义。
答案 1 :(得分:1)
您需要转义'
字符,因为它也是单引号字符串的分隔符:
$replace = '/[!\/.,#\s\-:?"\']+/';
^^
通过在其前面添加\
来完成转义。这通常是合乎逻辑的,因为否则您将完成字符串定义,然后导致语法错误(PHP无法解析您的代码)。请参阅Single quoted StringDocs。
是否有更简单的方法列出要替换的所有符号?
仅仅列出它们(就像你已经做的那样)是不是很容易?所以我必须承认,我不清楚你真正关心的是什么,所以我不能提供更容易的东西。