在服务器上ping你的目的地址,看速度怎么样

解决方案 »

  1.   

    可能是你的远程服务器没有打开那个远程获取命令
    即支持获取远程url的和服务商联系一下!
      

  2.   

    提示: 如果“fopen wrappers”已经被激活,则在本函数中可以把 URL 作为文件名来使用。请参阅 fopen() 函数来获取怎样指定文件名的详细信息以及支持 URL 封装协议的列表:附录 L。如果 PHP 认为 filename 指定的是一个已注册的协议,而该协议被注册为一个网络 URL,PHP 将检查并确认 allow_url_fopen 已被激活。如果关闭了,PHP 将发出一个警告,而 fopen 的调用则失败。 
    设置php.ini中的
    allow_url_fopen
      

  3.   

    allow_url_fopen = On没问题的.
    现在就是用 file_get_contents 或 fsockopen 都是10次里会有几次好使.
    怪就怪在不是不好使,是有时好时,但出现failed to open stream: HTTP request failed! 提示的时候还是多数...
      

  4.   

    fsockopen 和 file_get_contents 都不是太可靠,你可以试一下curl,相比之下,更好用。
      

  5.   

    是不是服务器响应时间设置的太短导致?
    如果服务器反应慢的话,在连接时可能是由于超时导致failed to open stream: HTTP request failed!
      

  6.   

    windows 2003我感觉就是响应时间过快.
      

  7.   

    你在apache的http.conf里面找找看,具体怎么设置的我也不太清楚,我只知道在IIS里可以设置!
    默认的响应时间可能是 90s
      

  8.   

    一种是IP被封
    另一种是可能是跨域了,对方跳转了看看出错的url,放在iE中测一下就行了
    如果IE能打开,且地址不变,则说明没问题
      

  9.   

    第一、IP肯定没有被封,因为目标地址可以正常访问。
    第二、DNS绝对没问题。
    第三、目标地址不存在重定向的问题。
    第四、allow_url_fopen 是开启的。
    第五、不是完全不好使,是偶尔好使。
    第六、在本机测试一切正常。配置有PHP、MYSQL、APACHE没有什么不同。我现在的解决办法就是循环来解决的。
    for($i=0;$i<100;$i++){
    $getpage = @file_get_contents($Url); 
    if($getpage) break;
    }帮帮忙吧。。
      

  10.   

    楼主把函数file_get_contents()的参数贴出来看看
      

  11.   

    file_get_contents 是php系统函数
    我是在数据中国租的服务器,是windows2003。现在真不知道问题在哪里了
      

  12.   

    不会有问题的
    $getpage = @file_get_contents($Url); 
    不要用这个
    这个出错了同样会停止
      

  13.   

    一般不会出问题的
    你要以echo一下你出错的url,放在iE里测一下就行了
    很简单的,可你偏不信
      

  14.   

    file_get_conetnts 如果没有获取到内容他会返回错误信息.但是我用@给屏蔽了,
    也就是说,如果没有成功获取到内容就继续循环。直到有了内容就跳出。
    循环限制在100次内。
      

  15.   

    现在服务器的 file_get_conetnts 的成功机率小,所以有我现在用了循环的方法来做。现在是可以正常得到内容。但我本机不用循环,就可以一次就成功抓取到内容。在服务器上如果只用一次 file_get_conetnts 的话,把@去掉。
    运行时出现failed to open stream: HTTP request failed! 的频率很大..
      

  16.   

    这样,用 file_get_contents 如果抓到内容他会返回一个 true, 抓不到 他会返回一个 false这样写现在抓取的话,可以显示正常的抓取内容:
    for($i=0;$i <100;$i++){ 
    $getpage = @file_get_contents($Url); 
    if($getpage) break; 
    } 如果只写 $getpage = file_get_contents($Url); 
    出现failed to open stream: HTTP request failed! 的机率很高,但有时也能正常抓取.
      

  17.   

    感觉可能是由于访问超时造成的。你还是用curl吧,可以加个http头来设置超时时间,把超时时间加长一些,默认是10秒