zoukankan      html  css  js  c++  java
  • failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found

    failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found

    一、总结

    一句话总结:这里出现的问题是我在博客园删除了一篇文章,时间太短,所以博客园还没有更新,所以当我用删除的那篇文章的链接访问博客园的时候,就出现了这个错误提示:这是是真的是因为文件已经被删除了。

    file_get_contents(https://www.cnblogs.com/Renyi-Fan/p/9620120.html): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found

    1、php如何伪造user_agent(伪造user agent的代码的位置)?

    file_get_contents伪造user_agent 方法如下:
    ini_set('user_agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727;)'); 

    curl伪造user_agent的方法:
    curl_setopt($c, CURLOPT_USERAGENT,'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727;)');

    ini_set('user_agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727;)');
    $html=file_get_contents($url);

    2、如何解决failed-to-open-stream:-HTTP-request-failed?

    有人说在php.ini中,有这样两个选项:allow_url_fopen =on(表示可以通过url打开远程文件),user_agent="PHP"(表示通过哪种脚本访问网络,默认前面有个 " ; " 去掉即可。)重启服务器。

    二、完美解决failed-to-open-stream:-HTTP-request-failed

     当使用php5自带的file_get_contents方法来获取远程文件的时候,有时候会出现file_get_contents(): failed to open stream: HTTP request failed!这个警告信息。

    google或者baidu一下,好多这样的问题,解决的方法都是修改php.ini,把allow_url_fopen给启用,改成 allow_url_fopen = On

    这样做可以解决某些人的问题,有人说在php.ini中,有这样两个选项:allow_url_fopen =on(表示可以通过url打开远程文件),user_agent="PHP"(表示通过哪种脚本访问网络,默认前面有个 " ; " 去掉即可。)重启服务器。

    但是有些还是会有这个警告信息,想用完美的解决还差一步,还得设置php.ini里面的user_agent,php默认的user_agent是PHP,我们把它改成Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)来模拟浏览器就可以了

    user_agent=”Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)”

    =============================================================================================

     方法二

    file_get_contents 和 curl 这俩强悍的函数,在远程抓取时候相当有用处.不过一些网站会根据来访ip是否携带user_agent来判断是正常的浏览器客户端还是机器.所以,我们的任务就是给他们伪造user_agent.
    file_get_contents伪造user_agent 方法如下:
    ini_set('user_agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727;)'); 

    curl伪造user_agent的方法:
    curl_setopt($c, CURLOPT_USERAGENT,'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727;)');

    参考:完美解决failed-to-open-stream:-HTTP-request-failed!_翁雪杰(WAP-6131)_新浪博客
    http://blog.sina.com.cn/s/blog_700e11ff0101228l.html

     
  • 相关阅读:
    数据库性能优化摘录
    关于海量用户访问的通用技术架构的一些思考
    Rose建模示例
    ASP.NET2.0下实现分布式StateServer(状态服务器)
    Apache + Tomcat 实现简单集群
    StateServer 解决 Session过期和分布式保存Session
    ASP.NET动态修改浏览器title,keywords,descrtptions,csslink,meta,icon等
    用户登录体验(自动时间锁)
    百度ueditor一些使用技巧
    C# AJAX中弹出提示窗口
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/9620389.html
Copyright © 2011-2022 走看看