深入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(1)--回到未来
Oct 09 PHP
PHP中的cookie
Nov 26 PHP
同一空间绑定多个域名而实现访问不同页面的PHP代码
Dec 06 PHP
ajax+php打造进度条 readyState各状态
Mar 20 PHP
SESSION信息保存在哪个文件目录下以及能够用来保存什么类型的数据
Jun 17 PHP
php遍历类中包含的所有元素的方法
May 12 PHP
Thinkphp实现自动验证和自动完成
Dec 19 PHP
实现PHP搜索加分页
Oct 12 PHP
Laravel学习教程之View模块详解
Sep 18 PHP
PHP里的$_GET数组介绍
Mar 22 PHP
解决Laravel无法使用COOKIE和SESSION的问题
Oct 16 PHP
php查看一个变量的占用内存的实例代码
Mar 29 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 curl_setopt 函数的相关应用及介绍
2013/06/17 PHP
php使用正则过滤js脚本代码实例
2014/05/10 PHP
PHP实现页面静态化的超简单方法
2016/09/06 PHP
取键盘键位ASCII码的网页
2007/07/30 Javascript
jqeury-easyui-layout问题解决方法
2014/03/24 Javascript
js统计录入文本框中字符的个数并加以限制不超过多少
2014/05/23 Javascript
一个超简单的jQuery回调函数例子(分享)
2016/08/08 Javascript
jQuery Validate设置onkeyup验证的实例代码
2016/12/09 Javascript
微信小程序开发探究
2016/12/27 Javascript
Angular2使用Angular-CLI快速搭建工程(二)
2017/05/21 Javascript
详解Webstorm 新建.vue文件支持高亮vue语法和es6语法
2017/10/26 Javascript
基于js中style.width与offsetWidth的区别(详解)
2017/11/12 Javascript
js实现敏感词过滤算法及实现逻辑
2018/07/24 Javascript
微信小程序 自定义弹窗实现过程(附代码)
2019/12/05 Javascript
javascript实现前端分页效果
2020/06/24 Javascript
js实现点击上传图片并设为模糊背景
2020/08/02 Javascript
[00:15]天涯墨客终极技能展示
2018/08/25 DOTA
win10环境下python3.5安装步骤图文教程
2017/02/03 Python
Python 模拟购物车的实例讲解
2017/09/11 Python
django项目运行因中文而乱码报错的几种情况解决
2017/11/07 Python
Pycharm 实现下一个文件引用另外一个文件的方法
2019/01/17 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
2020/06/24 Python
HTML5实现WebSocket协议原理浅析
2014/07/07 HTML / CSS
基于html5 DeviceOrientation 实现微信摇一摇功能
2015/09/25 HTML / CSS
HTML5 manifest离线缓存的示例代码
2018/08/08 HTML / CSS
全球第二大家装零售商:Lowe’s
2018/01/13 全球购物
德国隐形眼镜店:LuckyLens
2018/07/29 全球购物
益模软件Java笔试题
2012/03/27 面试题
利达恒信公司.NET笔试题面试题
2016/03/05 面试题
销售心得体会
2014/01/02 职场文书
创新型城市实施方案
2014/03/06 职场文书
光棍节联谊晚会活动策划书
2014/10/10 职场文书
你对自己的信用报告有过了解吗?
2019/07/09 职场文书
Java基础之this关键字的使用
2021/06/30 Java/Android
天谕手游15杯全调酒配方和调酒券的获得方式
2022/04/06 其他游戏
Python通过loop.run_in_executor执行同步代码 同步变为异步
2022/04/11 Python