2012-12-06 85 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)) –