$ip = array();
    $ip[0]   =   "192.168.1.178";
$ip[1] = "192.168.1.185";
$ip[2] = "192.168.1.184";
$ip[3] = "192.168.1.183";
$ip[4] = "192.168.1.182";
foreach ($ip as $ipTest)
{
PRINT_R($ipTest);
//183走到这里就停止了,不执行了
$fp=fopen("http://$ipTest","r");
if(!$fp) 
{
echo $iptest."不存在";
fclose($fp);
}
else
{
echo $iptest."存在";
}
fclose($fp);
}
$ip中有两个IP 不存在,178与183
当有178不存的时候 提示不存在,但是走到183的时候为什么会停止呢。fopen()不执行了。后面程序就没有了。php  fopen()exec()socket

解决方案 »

  1.   

    fopen() 为什么执行一次之后,就不执行了啊?   返回的的类型是null呢?   不是true or false了
      

  2.   

    对于不存在的ip,或许是卡在了fopen的地方
    可以考虑其他的方式,如
    ping。
    exec(“ping xxxxxxxxxxxxxx”)
    或者fsocketopen  起码超时是可控的。
      

  3.   

    exec(“ping xxxxxxxxxxxxxx”)
    这个 也是 exec( "ping   $ipTest && exit",$arr,$arr1); 
    我也做了测试,也是到第二个183的时候程序卡住
      

  4.   


    用socket呢?
    什么socket? 怎么用 。 我就是因为socket 用到才用这种方法的
      

  5.   

    UDP是无连接传输, 
    我用socket_sendto($sock,$text,1024, 0 , $ip, $port)传递数据,为什么当我传的IP不存在时,程序会卡住走不下去。
    不是随便一个IP都可以的吗?