STR功能[PHP]

时间:2015-04-10 13:52:06

标签: php arrays strstr

好吧,伙计们,我在这里因为我想在我的网站上做一些先进的事情,而且我不知道这是怎么做的,如果有可能的话。

它是这样的:

有人会在我的网站上注册,并且有一个功能来验证这个名字是否在#34; array()"中被阻止,但是有些特殊字符可以用来表示你的名字,比如&# 34;。"," - " ...如果我注册这个名字" ADM",我的验证无效。

你们可以帮我这个吗?

我的功能:

final static function isBlockedName($name) {
    $blockedNames = array ('mod', 'adm', 'staff');
    foreach($blockedNames as $list) {
        if(strtolower($name) == strtolower($list)) {
            self::AddBan('user','157788000',self::getUserID($name),'Nome Impróprio','3');
            session_destroy();

            header('Location: /');
            exit;
        }
    }
    foreach($blockedNames as $two) {
        if(strpos(strtolower($name), strtolower($two)) !== false) {
            self::AddBan('user','157788000',self::getUserID($name),'Nome Impróprio','3');
            session_destroy();

            header('Location: /');
            exit;
        }
    }
    return false;
}

抱歉我的英语不好:(

1 个答案:

答案 0 :(得分:0)

您可以使用str_replace从比较中的名称中删除这些特殊字符。变化

if(strtolower($name) == strtolower($list)) {

if(strtolower(str_replace(array('.', '-'), '', $name)) == strtolower($list)) {

另一种方法是使用in_array代替foreach循环:

if(in_array(str_replace(array('.', '-'), '', $name), $blockedNames)) {
    // do something
}