php出现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”,最开始以为是内存不足,后来百度一下不是这个问题。大概的原因是处理缩略图裁剪的时候,发现链接出现错误,因为测试站开启了网站密码这就导致查询不到http状态码,所以这个时候就出现了这个错误提示。

我再用的是php7.4和8.0,其中8.0出现错误提示,那么如何解决failed-to-open-stream:-HTTP-request-failed的错误呢按照百度的教程有两种完美的解决办法。

php出现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);

 可能有些看不懂哈,没事,我也看不懂,但是看起来很厉害的样子有没有?既然看不懂就越过吧,毕竟函数代码不是都写成一个样子的,改错了可能导致更大的错误,那么可以试试学习下面的方法。


第二种方法:

解决failed-to-open-stream:-HTTP-request-failed的问题

打开服务器php配置文件php.ini(别问我这个文件在哪)找到这两个选项:allow_url_fopen =on(表示可以通过url打开远程文件,如果是off修改成on),user_agent="PHP"(表示通过哪种脚本访问网络,默认前面有个 " ; " 去掉即可。)然后重载或者重启php服务器即可,如果是宝塔服务器,直接在软件管理,找到站点所用的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)”

我是没用修改这个,仅仅是部分会出现,我只是把前面的;分号取消了然后网站就正常的,当然我也并不清楚这个是我主题的问题还是裁剪代码的问题,如果您觉得费事,可以考虑不开启缩略图裁剪,在zbp1.7版本之后缩略图裁剪用的是官方自带的代码,不是之前网上找的,所以可能是php兼容性问题吧,搞不懂,毕竟不会PHP。。。

文章版权声明:除非注明,否则均为李洋个人博客原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (暂无评论,1327人围观)

还没有评论,来说两句吧...

取消
支付宝二维码
支付宝二维码
微信二维码