php错误提示failed to open stream: HTTP request failed!的完美解决方法


Posted in PHP onJune 06, 2011

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)”

在工作中遇到这个问题,后完美解决,故分享给大家。
我批量抓取chemblink的结构式发现循环后有部分图片无法显示,而远程文件是存在的。
抓取远程文件的时候出现类似Warning: readfile(https://3water.com/logo.gif) [function.readfile]: failed to open stream: HTTP request failed! 这样的警告信息,我使用的是

ob_start(); 
readfile("https://3water.com/logo.gif"); 
$img = ob_get_contents(); 
ob_end_clean();

这样在运行中会时不时的出现上述错误,我也换过file_get_contents等其他函数都没用用,在网上查阅后发现用CURL方法抓取不会出错

现在比较流行使用curl

<?php 
$url = "http://s.3water.com"; 
$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT,10); 
$dxycontent = curl_exec($ch); 
echo $dxycontent; 
?>
PHP 相关文章推荐
PHP 上传文件大小限制
Jul 05 PHP
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
Aug 15 PHP
谈谈关于php的优点与缺点
Apr 11 PHP
PHP采用curl模仿用户登陆新浪微博发微博的方法
Nov 07 PHP
php获取错误信息的方法
Jul 17 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
Oct 21 PHP
PHP如何通过AJAX方式实现登录功能
Nov 23 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
Mar 01 PHP
php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
May 12 PHP
基于swoole实现多人聊天室
Jun 14 PHP
通过PHP设置BugFree获取邮箱通知
Apr 25 PHP
swoole锁的机制代码实例讲解
Mar 04 PHP
PHP 获取远程网页内容的代码(fopen,curl已测)
Jun 06 #PHP
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
Jun 04 #PHP
php写的简易聊天室代码
Jun 04 #PHP
php结合表单实现一些简单功能的例子
Jun 04 #PHP
PHP中对用户身份认证实现两种方法
Jun 04 #PHP
关于php curl获取301或302转向的网址问题的解决方法
Jun 02 #PHP
基于PHP的cURL快速入门教程 (小偷采集程序)
Jun 02 #PHP
You might like
PHP 魔术函数使用说明
2010/05/14 PHP
phpmyadmin里面导入sql语句格式的大量数据的方法
2010/06/05 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
2016/03/21 PHP
阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
2007/05/08 Javascript
JS操作JSON要领详细总结
2013/08/25 Javascript
from表单多个按钮提交用onclick跳转不同action
2014/04/24 Javascript
jquery 隐藏与显示tr标签示例代码
2014/06/06 Javascript
javascript面向对象快速入门实例
2015/01/13 Javascript
当jquery ajax遇上401请求的解决方法
2016/05/19 Javascript
基于jQuery实现弹出可关闭遮罩提示框实例代码
2016/07/18 Javascript
AngularJS控制器之间的数据共享及通信详解
2016/08/01 Javascript
使用JS实现图片展示瀑布流效果(简单实例)
2016/09/06 Javascript
Angular.js之作用域scope'@','=','&amp;'实例详解
2017/02/28 Javascript
javascript完美实现给定日期返回上月日期的方法
2017/06/15 Javascript
详解RequireJs官方使用教程
2017/10/31 Javascript
关于Vue单页面骨架屏实践记录
2017/12/13 Javascript
layui问题之模拟select点击事件的实例讲解
2018/08/15 Javascript
javascript操作向表格中动态加载数据
2020/08/27 Javascript
Chrome插件开发系列一:弹窗终结者开发实战
2020/10/02 Javascript
[09:40]DAC2018 4.5 SOLO赛 MidOne vs Miracle
2018/04/06 DOTA
Python多线程同步Lock、RLock、Semaphore、Event实例
2014/11/21 Python
Python实现将n个点均匀地分布在球面上的方法
2015/03/12 Python
Python编程实现使用线性回归预测数据
2017/12/07 Python
python web.py开发httpserver解决跨域问题实例解析
2018/02/12 Python
Python字典对象实现原理详解
2019/07/01 Python
Python selenium爬取微信公众号文章代码详解
2020/08/12 Python
Django-celery-beat动态添加周期性任务实现过程解析
2020/11/26 Python
美国轮胎网站:Priority Tire
2018/11/28 全球购物
如何提高JDBC的性能
2013/04/30 面试题
党员创先争优公开承诺书
2014/03/28 职场文书
小学语文教学经验交流材料
2014/06/02 职场文书
酒店保洁员岗位职责
2015/02/26 职场文书
丧事酒宴答谢词
2015/09/30 职场文书
python基础入门之普通操作与函数(三)
2021/06/13 Python
vue项目proxyTable配置和部署服务器
2022/04/14 Vue.js
MySQL数据管理操作示例讲解
2022/12/24 MySQL