我该如何使用这个PHP数组?

时间:2009-09-23 04:55:11

标签: php arrays

我曾经使用下面的函数来表示数组或IP,但现在我已经改变了这个IP数组:

$bannedIPs = array('127.0.0.0','72.189.218.85'); // Banned IPs array

ipban($bannedIPs);

function ipban($bannedIPs) {
    if (in_array($_SERVER['REMOTE_ADDR'], $bannedIPs)) { 
        include ("site_banip.php");
        session_destroy();
        exit;
    }   
}

到此:

$config_item['bannedIPs'] = array('127.0.0.0','72.189.218.85'); // Banned IPs array

ipban($config_item['bannedIPs']);

function ipban($bannedIPs) {
    if (in_array($_SERVER['REMOTE_ADDR'], $bannedIPs)) { 
        include ("site_banip.php");
        session_destroy();
        exit;
    }   
}

现在我无法让它工作,

Warning: in_array() [function.in-array]: Wrong datatype for second argument in C:\webserver\htdocs\includes\functions.inc.php on line 948

我可以做我想做的事吗?

2 个答案:

答案 0 :(得分:1)

将第二个参数更改为$ config_item ['bannedIPs']并将$ config_item传递给函数。

答案 1 :(得分:0)

使用类似的东西,如果你需要添加更多的IP,它将来会非常灵活。

$whitelist = array(
    // ".*.32.255.255", // Sample
    // "63.76.53.255", // Sample
    // "46..*..*..*", // Sample
    // "46.32..*..*", // Sample
    // "46.32.255..*", // Sample
    // "46..**.255.255", // Sample
);

foreach($whitelist as $ip)
{
    if (ereg($ip, $_SERVER['REMOTE_ADDR']))
    {
        include ("site_banip.php");
        session_destroy();
        exit;
    }
}