深入file_get_contents与curl函数的详解


Posted in PHP onJune 25, 2013

有些主机服务商把php的allow_url_fopen选项是关闭了,就是没法直接使用file_get_contents来获取远程web页面的内容。那就是可以使用另外一个函数curl。
下面是file_get_contents和curl两个函数同样功能的不同写法
file_get_contents函数的使用示例:

< ?php
$file_contents = file_get_contents('https://3water.com');
echo $file_contents;
?>

换成curl函数的使用示例:
< ?php
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, 'https://3water.com');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;
?>

利用function_exists函数来判断php是否支持一个函数可以轻松写出下面函数
< ?php
function vita_get_url_content($url) {
if(function_exists('file_get_contents')) {
$file_contents = file_get_contents($url);
} else {
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
}
return $file_contents;
}
?>

其实上面的这个函数还有待商榷,如果你的主机服务商把file_get_contents和curl都关闭了,上面的函数就会出现错误。
PHP 相关文章推荐
Php+SqlServer实现分页显示
Oct 09 PHP
Adodb的十个实例(清晰版)
Dec 31 PHP
php检测图片木马多进制编程实践
Apr 11 PHP
深入PHP异步执行的详解
Jun 03 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
Jun 13 PHP
解析php扩展php_curl.dll不加载的解决方法
Jun 26 PHP
php多任务程序实例解析
Jul 19 PHP
php表单提交与$_POST实例分析
Jan 26 PHP
教大家制作简单的php日历
Nov 17 PHP
PHP如何实现跨域
May 30 PHP
PHP中call_user_func_array回调函数的用法示例
Nov 26 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
Jan 22 PHP
解析如何去掉CodeIgniter URL中的index.php
Jun 25 #PHP
解析php入库和出库
Jun 25 #PHP
解析php下载远程图片函数 可伪造来路
Jun 25 #PHP
解析php通过cookies获取远程网页的指定代码
Jun 25 #PHP
使用dump函数,给php加断点测试
Jun 25 #PHP
解析php多线程下载远程多个文件
Jun 25 #PHP
基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
Jun 25 #PHP
You might like
六酷社区论坛HOME页清新格调免费版 下载
2007/03/07 PHP
IIS7.X配置PHP运行环境小结
2011/06/09 PHP
PHP简单获取随机数的常用方法小结
2017/06/07 PHP
php封装的mongodb操作类代码
2017/08/06 PHP
PHP7新特性
2021/03/09 PHP
Javascript开发包大全整理
2006/12/22 Javascript
js修改原型的属性使用介绍
2014/01/26 Javascript
jQuery获取当前对象标签名称的方法
2014/02/07 Javascript
jquery对象和javascript对象即DOM对象相互转换
2014/08/07 Javascript
jQuery时间插件jquery.clock.js用法实例(5个示例)
2016/01/14 Javascript
移动端使用localStorage缓存Js和css文的方法(web开发)
2016/09/20 Javascript
利用n工具轻松管理Node.js的版本
2017/04/21 Javascript
详解Js中的模块化是如何实现的
2017/10/18 Javascript
vue计算属性及使用详解
2018/04/02 Javascript
Angular路由ui-router配置详解
2018/08/01 Javascript
Vue数字输入框组件示例代码详解
2020/01/15 Javascript
HTML元素拖拽功能实现的完整实例
2020/12/04 Javascript
python基础教程之序列详解
2014/08/29 Python
Python复制目录结构脚本代码分享
2015/03/06 Python
python迭代器与生成器详解
2016/03/10 Python
Python虚拟环境项目实例
2017/11/20 Python
Python PyQt4实现QQ抽屉效果
2018/04/20 Python
详解Python Qt的窗体开发的基本操作
2019/07/14 Python
python如何提取英语pdf内容并翻译
2020/03/03 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
2020/03/12 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
2020/12/31 Python
使用numpngw和matplotlib生成png动画的示例代码
2021/01/24 Python
使用python tkinter开发一个爬取B站直播弹幕工具的实现代码
2021/02/07 Python
夏威夷咖啡公司:Hawaii Coffee Company
2019/09/19 全球购物
如何转换一个字符串到enum值
2014/04/12 面试题
大学生学业生涯规划
2014/01/05 职场文书
出纳担保书范文
2014/04/02 职场文书
双方协议书
2014/04/22 职场文书
社区平安建设汇报材料
2014/08/14 职场文书
医生学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
大学新生入学感想
2015/08/07 职场文书