2012-02-09 60 views
0

我在搜索字符串「目標主機無法訪問」的陣列$結果,它不起作用。使用in_array函數在變量中找不到字符串

我不知道我在做什麼錯,並想知道如果有人可以伸出援手嗎?

$ip = 192.168.1.30 

    $pingresult = exec("ping -n 1 $ip", $outcome, $status); 

    if ($status == 0) 
     {           
      if(in_array("Destination host unreachable", $outcome)) 
       { 
        echo "Unreachable"; 
       } 
      else 
       { 
        echo "Alive"; 
       } 
     } 

P.S.請注意我在Windows機器上,因此退出狀態與Linux等不同。

回答

1

你也可以試試。

if(array_search($outcome, "Destination host unreachable") !== false){ 
echo 'not reachable'; 
} 
+0

謝謝,使用這個。雖然我確實'想要一個字符串,而不是數組'的錯誤。儘管如此,它似乎是這樣工作的。 – Bernard 2012-02-10 20:16:56

+0

哦,好的。這個函數是爲字符串多數民衆贊成在爲什麼不工作陣列。 試試這個,它會工作。 (array_search($ outcome,「Destination host unreachable」)!== false){ echo'not reachable'; } – rajesh 2012-02-11 04:58:30

+0

@rajesh - 你應該更新你的答案 – 2012-02-26 20:34:31

1

in_array僅在完全匹配時返回true。所以,如果線上有其他字符(包括空格),則不匹配。您可能希望使用preg_match遍歷數組。