$name需要是一个数组。阅读preg_grep文档,您可以看到设置如下:preg_grep ( 字符串 $pattern , 数组$input [, 整型 $flags = 0 ] )它接受一个字符串、一个数组,然后是一个可选的整数。溶液现在我对你想要实现的目标有了更清晰的了解,请参阅下文。检查字符串中是否存在特殊字符:if(preg_match('/[\'^£$%&*()}{@#~?><>,|=_+¬-]/', $name)) { // Special character has been found.}从字符串中删除特殊字符:$name = preg_replace('/[^A-Za-z0-9\-]/', '', $name);检查字符串中是否存在特定单词:显然,在这种情况下,这就是你正在寻找的东西,也是你正在寻找的东西。$haystack$needleif(strpos($haystack, $needle) !== false) // Word has been found.检查字符串是否包含空格或特殊字符:if(preg_match('/[^a-zA-Z0-9-_\.]/', $name)) { // Special character or space has been found.}