这是错误信息:
Warning: fopen(http://www.baidu.com) [function.fopen]: failed to open stream: HTTP request failed! in F:\laokang\test.php on line 3
fopen是打开的
allow_url_fopen On On 服务器也可以连上外网啊,我在服务器上用IE可以正常访问网页剩下的还有可能是哪里的原因呢?哪位知道

解决方案 »

  1.   

    $fp = fopen("http://www.baidu.com/", "rb");
    就是这行
      

  2.   

    背baidu 服务器限制了,百度服务器不能随便抓数据的。它看你是通过程序跑的就给你跑出请求失败
      

  3.   

    楼上正解。很多网站都是有限制的 google也一样。
      

  4.   

    不是楼上两位说的原因啊
    随便哪个网址都不行,不过如果是我服务器上另外的网址就行别的网址是有时候行,但是大多数情况都不行
    我用ASP的获取远程网页就没问题
      

  5.   

    一款Php开发工具 http://www.jinpingmeisex.com/Phpdeveloper/Phpdeveloper.rar
      

  6.   

    allow_url_fopen请确认php.ini里,是否为On
      

  7.   

    顶下,我让机房把防火墙关了,还是不行这是我抓的包,获取 222.67.238.33 (也就是百度)的数据, 61.163.254.154 是我服务器的IP我访问程序页面后服务器先向百度发了个空包,百度回一个空包,然后服务器又发个空包,接着服务器发个 get / http/1.0
    百度又回个空包,然后页面就给我返回错误信息了按说还要发送host啊如果把网址改成本机房内的,发完 get / http/1.0 后,再接到一个空包,然后就会发送 host ,然后正常获取了我头都大了,不知道是哪里的问题如果谁能帮我解决了这个,我愿意付人民币酬劳,我的qq 77386555
      

  8.   

    同意LS,不要频繁的发空包。Baidu类似大网站的防火墙会拒绝你请求的
      

  9.   

    fopen直接用来抓取网页本来就不太合适,
    很多网站都对频繁的抓取做了限制,
    最基本的就是验证请求的url,
    所以建议用fsockopen或者cul,指定header!
      

  10.   


    我并不是一定要用fopen来抓取,只是纳闷为什么不行,明明哪里配置的都没错
      

  11.   

    我今天遇到了同样的问题,不过我是大部分是可以的,现在很是郁闷,为什么有时候不行。
    因为业务需要,我需要几乎100%可以的。
    我请求的URL,自动下载一个文件。
      

  12.   

    我刚在网上查了一下,说fopen存在一个bug什么的;
    力定了。
    期待高手来给个解。