数组是否包含(的一部分)字符串?

这个问题在这里已经有了答案:

  • 如何检查一个字符串是否包含特定单词? 37个答案

  • 循环访问$forbiddennames数组并使用stripos来检查给定的输入字符串是否与数组中的任何项匹配:

    function is_forbidden($forbiddennames, $stringtocheck) 
    {
        foreach ($forbiddennames as $name) {
            if (stripos($stringtocheck, $name) !== FALSE) {
                return true;
            }
        }
    }
    

    并像下面一样使用它:

    if(is_forbidden($forbiddennames, $stringtocheck)) {
        echo "This is a forbidden username.";
    } else {
        echo "True";
    }
    

    演示!


    foreach ($forbiddennames as $forbiddenname) {
        $nametocheck = strtolower($stringtocheck);
        if(strpos($stringtocheck, $forbiddenname) !== false) {
            echo "This is a forbidden username.";
            break;
        }
    }
    

    如果使用array_map,foreach或其他不同的东西,这并不重要。 解决方案:

    $forbiddenNames = array('admin', 'bannedName');
    $input = 'Admin12';
    $allowed = true;
    foreach($forbiddenNames as $forbiddenName) {
        if(stripos($input, $forbiddenName) !== false) {
            echo $input, ' is invalid';
            $allowed = false;
            break;
        }
    }
    if($allowed === true) {
        echo $input, ' is valid';
    }
    
    链接地址: http://www.djcxy.com/p/13119.html

    上一篇: Does array contain (part of) string?

    下一篇: How to check if a string contain any text