深入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 相关文章推荐
分页显示Oracle数据库记录的类之一
Oct 09 PHP
利用static实现表格的颜色隔行显示
Oct 09 PHP
用php解析html的实现代码
Aug 08 PHP
解析php中array_merge与array+array的区别
Jun 21 PHP
PHP生成不同颜色、不同大小的tag标签函数
Sep 23 PHP
PHP超牛逼无限极分类生成树方法
May 11 PHP
PHP缓冲区用法总结
Feb 14 PHP
PHP并发多进程处理利器Gearman使用介绍
May 16 PHP
php变量与数组相互转换的方法(extract与compact)
Dec 02 PHP
PHP使用SMTP邮件服务器发送邮件示例
Aug 28 PHP
PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析
Dec 11 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
Mar 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扩展vld查看PHP opcode操作步骤
2013/03/04 PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
2014/08/21 PHP
php实现倒计时效果
2015/12/19 PHP
Yii CFileCache 获取不到值的原因分析
2017/02/08 PHP
JavaScript 继承详解(三)
2009/07/13 Javascript
JavaScript 函数调用规则
2009/09/14 Javascript
js自定义事件代码说明
2011/01/31 Javascript
vue.js从安装到搭建过程详解
2017/03/17 Javascript
angular中的cookie读写方法
2017/08/02 Javascript
node.js支持多用户web终端实现及安全方案
2017/11/29 Javascript
angularjs select 赋值 ng-options配置方法
2018/02/28 Javascript
Vue.js中的computed工作原理
2018/03/22 Javascript
Vue 的双向绑定原理与用法揭秘
2020/05/06 Javascript
[04:13]2014DOTA2国际邀请赛 专访DC目前形势不容乐观
2014/07/12 DOTA
[01:13:08]2018DOTA2亚洲邀请赛4.6 淘汰赛 mineski vs LGD 第二场
2018/04/10 DOTA
python使用any判断一个对象是否为空的方法
2014/11/19 Python
Python可跨平台实现获取按键的方法
2015/03/05 Python
python使用__slots__让你的代码更加节省内存
2018/09/05 Python
Python subprocess库的使用详解
2018/10/26 Python
Python实现自动访问网页的例子
2020/02/21 Python
Pycharm常用快捷键总结及配置方法
2020/11/14 Python
css3动画事件—webkitAnimationEnd与计时器time事件
2013/01/31 HTML / CSS
Alba Moda德国网上商店:意大利时尚女装销售
2016/11/14 全球购物
BLACKMORES澳洲官网:澳大利亚排名第一的保健品牌
2018/09/27 全球购物
俄罗斯电动工具和设备购物网站:Vseinstrumenti.ru
2020/11/12 全球购物
机械制造专业个人的自我评价
2013/12/28 职场文书
打架检讨书50字
2014/01/11 职场文书
大学英语演讲稿(中英文对照)
2014/01/14 职场文书
初三班主任寄语大全
2014/04/04 职场文书
《跟踪台风的卫星》教学反思
2014/04/10 职场文书
班主任个人工作反思
2014/04/28 职场文书
报表员工作失误检讨书范文
2014/09/19 职场文书
故宫英文导游词
2015/01/31 职场文书
人民检察院起诉书
2015/05/20 职场文书
军训决心书范文
2015/09/22 职场文书
教师培训学习心得体会
2016/01/21 职场文书