深入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 相关文章推荐
php4的session功能评述(二)
Oct 09 PHP
mysql limit查询优化分析
Nov 12 PHP
php 远程关机操作的代码
Dec 05 PHP
浅析PHP程序防止ddos,dns,集群服务器攻击的解决办法
Jun 18 PHP
PHP不用递归遍历目录下所有文件的代码
Jul 04 PHP
php字符串替换函数substr_replace()用法实例
Mar 17 PHP
如何写php守护进程(Daemon)
Dec 30 PHP
PHP开发中解决并发问题的几种实现方法分析
Nov 13 PHP
深入研究PHP中的preg_replace和代码执行
Aug 15 PHP
PHP中非常有用却鲜有人知的函数集锦
Aug 17 PHP
thinkPHP5框架路由常用知识点汇总
Sep 15 PHP
ThinkPHP5框架中使用JWT的方法示例
Jun 03 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版(3)
2006/10/09 PHP
php 获取全局变量的代码
2011/04/21 PHP
php实现删除空目录的方法
2015/03/16 PHP
php使用Jpgraph绘制简单X-Y坐标图的方法
2015/06/10 PHP
PHP使用Nginx实现反向代理
2017/09/20 PHP
正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度
2008/09/27 Javascript
javascript 多种搜索引擎集成的页面实现代码
2010/01/02 Javascript
ExtJS 下拉多选框lovcombo
2010/05/19 Javascript
javascript基础知识大全 便于大家学习,也便于我自己查看
2012/08/17 Javascript
使用jquery自定义鼠标样式满足个性需求
2013/11/05 Javascript
connect中间件session、cookie的使用方法分享
2014/06/17 Javascript
JavaScript实现图片DIV竖向滑动的方法
2015/04/25 Javascript
jquery实现两个图片渐变切换效果的方法
2015/06/25 Javascript
javascript实现textarea中tab键的缩排处理方法
2015/06/26 Javascript
微信小程序 122100版本更新问题解决方案
2016/12/22 Javascript
js图片延迟加载(Lazyload)三种实现方式
2017/03/01 Javascript
Vue.js展示AJAX数据简单示例讲解
2017/03/29 Javascript
Easyui Datagrid自定义按钮列(最后面的操作列)
2017/07/13 Javascript
Vue中定义全局变量与常量的各种方式详解
2017/08/23 Javascript
Vue-cli 使用json server在本地模拟请求数据的示例代码
2017/11/02 Javascript
JS实现audio音频剪裁剪切复制播放与上传(步骤详解)
2020/07/28 Javascript
matplotlib绘制动画代码示例
2018/01/02 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
2018/12/06 Python
python制作填词游戏步骤详解
2019/05/05 Python
Python中使用Selenium环境安装的方法步骤
2021/02/22 Python
爱尔兰电脑、家电和家具购物网站:Buy It Direct
2019/07/09 全球购物
爱尔兰旅游网站:ebookers.ie
2020/01/24 全球购物
体育专业个人的求职信范文
2013/09/21 职场文书
大学生毕业自荐信
2013/10/10 职场文书
怎么写有吸引力的自荐信
2013/11/17 职场文书
公司接待方案
2014/03/08 职场文书
股东协议书范本
2014/04/14 职场文书
小学课外活动总结
2014/07/09 职场文书
英语课前三分钟演讲稿
2014/08/19 职场文书
2014党支部对照检查材料思想汇报
2014/10/05 职场文书
工地食品安全责任书
2015/05/09 职场文书