preg_match数组

时间:2010-07-15 18:03:27

标签: php

它说它“期望参数1是字符串”。所以我想你不能在preg_match中有一个数组。但是我应该用什么呢?感谢

$config['forbidden_names'] = array('admin', 'moderator', 'hoster');


if (preg_match($config['forbidden_names'], $string)) echo "Forbidden name!"; 

编辑:in_array也许。大声笑。我很蠢

3 个答案:

答案 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来管理用户可以添加的内容。这看起来不安全。