深入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实际应用经验篇(7)
Oct 09 PHP
PHP 中的批处理的实现
Jun 14 PHP
php初学者写及时补给skype用户充话费的小程序
Nov 02 PHP
php语言流程控制中的主动与被动
Nov 05 PHP
服务器变量 $_SERVER 的深入解析
Jul 02 PHP
显示程序执行时间php函数代码
Aug 29 PHP
PHP中is_file()函数使用指南
May 08 PHP
Laravel学习基础之migrate的使用教程
Oct 11 PHP
Laravel 5.4.36中session没有保存成功问题的解决
Feb 19 PHP
对于Laravel 5.5核心架构的深入理解
Feb 22 PHP
PHP实现生成数据字典功能示例
May 24 PHP
PHP基于openssl实现非对称加密代码实例
Jun 19 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
Uchome1.2 1.5 代码学习 common.php
2009/04/24 PHP
用PHP编写和读取XML的几种方式
2013/01/12 PHP
php生成数组的使用示例 php全组合算法
2014/01/16 PHP
jQuery+PHP实现的掷色子抽奖游戏实例
2015/01/04 PHP
PHP实现补齐关闭的HTML标签
2016/03/22 PHP
PHP实现的随机IP函数【国内IP段】
2016/07/20 PHP
根据key删除数组中指定的元素实现方法
2017/03/02 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
2017/11/17 PHP
PHP与Perl之间知识点区别整理
2019/03/19 PHP
jQuery EasyUI API 中文文档 - ProgressBar 进度条
2011/09/29 Javascript
Jquery绑定事件(bind和live的区别介绍)
2013/08/23 Javascript
解析Javascript中大括号“{}”的多义性
2013/12/02 Javascript
js动画效果制件让图片组成动画代码分享
2014/01/14 Javascript
javascript回车完美实现tab切换功能
2014/03/13 Javascript
js中的getAttribute方法使用示例
2014/08/01 Javascript
招聘网站基于jQuery实现自动刷新简历
2015/05/10 Javascript
解决wx.onMenuShareTimeline出现的问题
2016/08/16 Javascript
JS判断是否为JSON对象及是否存在某字段的方法(推荐)
2016/11/29 Javascript
vuejs2.0实现分页组件使用$emit进行事件监听数据传递的方法
2017/02/22 Javascript
JS无限级导航菜单实现方法
2019/01/05 Javascript
ES6 更易于继承的类语法的使用
2019/02/11 Javascript
VUE子组件向父组件传值详解(含传多值及添加额外参数场景)
2020/09/01 Javascript
Vue利用localStorage本地缓存使页面刷新验证码不清零功能的实现
2020/09/04 Javascript
微信小程序实现日历签到
2020/09/21 Javascript
[01:02:03]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS VG
2014/05/26 DOTA
在Django中创建动态视图的教程
2015/07/15 Python
Python网络编程详解
2017/10/31 Python
彻底搞懂 python 中文乱码问题(深入分析)
2020/02/28 Python
CSS3新属性transition-property transform box-shadow实例学习
2013/06/06 HTML / CSS
俄罗斯韩国化妆品网上商店:Cosmasi.ru
2019/10/31 全球购物
幼儿教师师德承诺书
2014/05/23 职场文书
五好家庭事迹材料
2014/12/20 职场文书
小学体育组工作总结
2015/08/13 职场文书
党组织结对共建协议书
2016/03/23 职场文书
承诺书的内容有哪些,怎么写?
2019/06/21 职场文书
《童年》读后感(三篇)
2019/08/27 职场文书