2012-12-06 45 views
0

enter image description herein_array工作不爆炸

我无法弄清楚,为什么我的条件不工作,而IP地址是在数组中。为什么情况在图像未按所示

<?php $valid_ip_list = explode(',',$this->valid_ips); 
      echo $client_ip = $_SERVER['REMOTE_ADDR']; 
      print('<pre>'); 
      print_r($valid_ip_list); 
      if(in_array($client_ip ,$valid_ip_list)) 
       { 
        echo 'I am here'; 
       } 
      else 
       { 
        echo 'Condition fail'; 
       } 
?> 

问题与array_map('trim', explode(',', $valid_ips))

+1

检查在IP列表中的值的空白字符...用var_dump ()而不是echo和print_r来获得更多信息 –

+1

'strlen($ this-> valid_ips [2])'给了你什么?或者更好,将'print_r'改为'var_dump'并发布结果。 –

回答

1

帮助解决这将有助于

$valid_ips = '192.100.100.61,192.100.100.2,127.0.0.1'; 

// authorized 
if (in_array($_SERVER['REMOTE_ADDR'], array_map("trim", explode(',', $valid_ips)))) { 
    //... 
} 

// unauthorized 
else { 
    //... 
} 
+0

ips会每次都是动态的,所以我不能给静态 –

+0

是否有任何方法来修剪阵列中的每个元素 –

+2

yes,'array_map('trim',explode(',',$ valid_ips)) –