当我想要用当前用户ip检查所有值时,它只是检查当前用户的最后一个ip,我不知道为什么在值不检查之前。
我在这样的textarea中填写IP:176.227.213.74,176.227.213.78
elseif($maintenance_for == '2') {
$get_ips = $options['ips'];
$explode_ips = explode(',',$get_ips);
foreach ($explode_ips as $ips) {
if($ips == $_SERVER["REMOTE_ADDR"]){
$maintenance_mode = true;
}
else {
$maintenance_mode = false;
}
}
}
答案 0 :(得分:3)
$maintenance_mode = false;
foreach ($explode_ips as $ips) {
if($ips == $_SERVER["REMOTE_ADDR"]){
$maintenance_mode = true;
break;
}
}
编辑:记录的另一个解决方案,用于oneliner的点
$maintenance_mode = in_array($_SERVER["REMOTE_ADDR"], $explode_ips);
答案 1 :(得分:3)
如果找到正确的值,则不要BREAK
foreach loop
$get_ips = $options['ips'];
$explode_ips = explode(',', $get_ips);
foreach($explode_ips as $ips) {
if ($ips == $_SERVER["REMOTE_ADDR"]) {
$maintenance_mode = true;
break; // If the IP is right, BREAK out of the foreach, leaving $maintenance_mode to true
} else {
$maintenance_mode = false;
}
}