-1

我将以下内容用于preg_replace

$replace = '/[!\/."",#\s\-:?"]+/';

例如,当我尝试在'上面添加时,它会给我一个文件错误:

解析错误:语法错误,第 38 行 .../s.php 中的意外 T_NS_SEPARATOR

此外,是否有更简单的方法列出所有要替换的符号?

4

2 回答 2

2

如果您想摆脱任何符号,请尝试:

$replace = "/[^a-zA-Z0-9 ]/";

^表示“除以下之外的任何内容” 。将您想要允许的任何字符添加到列表中。这比列出每个符号并不得不处理转义要容易。

于 2012-01-25T22:09:26.050 回答
1

您需要转义'字符,因为它也是单引号字符串的分隔符:

$replace = '/[!\/.,#\s\-:?"\']+/';
                           ^^

转义是通过\在它前面添加来完成的。这通常是合乎逻辑的,否则您将完成字符串定义,然后导致语法错误(PHP 无法解析您的代码)。请参阅单引号字符串文档

有没有更简单的方法来列出所有要替换的符号?

仅仅列出它们还不够容易(就像你已经做过的那样)?所以我必须承认我不清楚你真正关心的是什么,所以我不能提供更简单的东西。

于 2012-01-26T10:48:51.057 回答