它说它“期望参数1是字符串”。所以我想你不能在preg_match中有一个数组。但是我应该用什么呢?感谢
$config['forbidden_names'] = array('admin', 'moderator', 'hoster');
if (preg_match($config['forbidden_names'], $string)) echo "Forbidden name!";
编辑:in_array也许。大声笑。我很蠢
答案 0 :(得分:1)
if (in_array($string, $config['forbidden_names']))
echo "Forbidden name!";
或者如果你必须使用正则表达式:
if (preg_match('/^(?:admin|moderator|hoster)$/', $string))
echo "Forbidden name!";
答案 1 :(得分:1)
将第二行更改为:
if (in_array($string, $config['forbidden_names'])) echo "Forbidden name!";
preg_match使用正则表达式,你应该远离它,除非你真的需要搜索正则表达式字符串,因为它很慢。
答案 2 :(得分:0)
试试这个
if (preg_match('/(admin|moderator|hoster)/i', $string)) echo "Forbidden name!";
顺便说一下,我宁愿为你的角色模型/表添加一个新的列/设置var来管理用户可以添加的内容。这看起来不安全。