深入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 相关文章推荐
一个简单的MySQL数据浏览器
Oct 09 PHP
强烈声明: 不要使用(include/require)_once
Jun 06 PHP
检查用户名是否已在mysql中存在的php写法
Jan 20 PHP
PHP连接MySQL的2种方法小结以及防止乱码
Mar 11 PHP
PHP+jQuery 注册模块的改进(一):验证码存入SESSION
Oct 14 PHP
ZF框架实现发送邮件的方法
Dec 03 PHP
php使用timthumb生成缩略图的方法
Jan 22 PHP
ThinkPHP静态缓存简单配置和使用方法详解
Mar 23 PHP
PHP删除二维数组中相同元素及数组重复值的方法示例
May 05 PHP
php如何把表单内容提交到数据库
Jul 08 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
Dec 18 PHP
PHP执行linux命令6个函数代码实例
Nov 24 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
浅谈PHP中的
2016/04/23 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
javascript知识点收藏
2007/02/22 Javascript
js 页面执行时间计算代码
2009/03/04 Javascript
JQuery与iframe交互实现代码
2009/12/24 Javascript
IE6图片加载的一个BUG解决方法
2010/07/13 Javascript
JS无法捕获滚动条上的mouse up事件的原因猜想
2012/03/21 Javascript
页面回到顶部的三种实现(锚标记,js)
2012/10/01 Javascript
animate动画示例(泪奔的小孩)及stop和delay的使用
2013/05/06 Javascript
jQuery代码实现表格中点击相应行变色功能
2016/05/09 Javascript
原生js封装二级城市下拉列表的实现代码
2016/06/16 Javascript
微信小程序 自定义Toast实例代码
2017/06/12 Javascript
JavaScript实现简单音乐播放器
2020/04/17 Javascript
layui表格 返回的数据状态异常的解决方法
2019/09/10 Javascript
vue实现页面内容禁止选中功能,仅输入框和文本域可选
2019/11/09 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
2020/05/15 Javascript
基于JS实现table导出Excel并保留样式
2020/05/19 Javascript
在vscode 中设置 vue模板内容的方法
2020/09/02 Javascript
vue 项目引入echarts 添加点击事件操作
2020/09/09 Javascript
[01:28:31]《加油DOTA》真人秀 第五期
2014/09/01 DOTA
[10:34]DOTA2上海特级锦标赛全纪录
2016/03/25 DOTA
python将ansible配置转为json格式实例代码
2017/05/15 Python
浅析python打包工具distutils、setuptools
2018/04/20 Python
python for循环输入一个矩阵的实例
2018/11/14 Python
图文详解python安装Scrapy框架步骤
2019/05/20 Python
Python3爬虫中Ajax的用法
2020/07/10 Python
python使用re模块爬取豆瓣Top250电影
2020/10/20 Python
python快速安装OpenCV的步骤记录
2021/02/22 Python
Zavvi荷兰:英国大型音像制品和图书游戏零售商
2018/03/22 全球购物
传统软件工程与面向对象的软件工程有什么区别
2012/05/31 面试题
环保倡议书100字
2014/05/15 职场文书
工作失职检讨书500字
2014/10/17 职场文书
物业前台接待岗位职责
2015/04/03 职场文书
十大最强妖精系宝可梦,哲尔尼亚斯实力最强,第五被称为大力士
2022/03/18 日漫
js基于div丝滑实现贝塞尔曲线
2022/09/23 Javascript