深入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结合表单实现一些简单功能的例子
Jun 04 PHP
基于Zend的Captcha机制的应用
May 02 PHP
php stream_get_meta_data返回值
Sep 29 PHP
zf框架的db类select查询器join链表使用示例(zend框架)
Mar 14 PHP
Linux下PHP加速器APC的安装与配置笔记
Oct 24 PHP
php使用递归计算文件夹大小
Dec 24 PHP
PHP数据库表操作的封装类及用法实例详解
Jul 12 PHP
利用PHP访问带有密码的Redis方法示例
Feb 09 PHP
PHP之认识(二)关于Traits的用法详解
Apr 11 PHP
TP5框架使用QueryList采集框架爬小说操作示例
Mar 26 PHP
php中yar框架实例用法讲解
Dec 27 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
在线增减.htpasswd内的用户
2006/10/09 PHP
PHP5 安装方法
2007/01/15 PHP
兼容PHP5的PHP目录管理函数库
2008/07/10 PHP
微信扫描二维码登录网站代码示例
2013/12/30 PHP
zend framework框架中url大小写问题解决方法
2014/08/19 PHP
javascript Discuz代码中的msn聊天小功能
2008/05/25 Javascript
js下通过getList函数实现分页效果的代码
2010/09/17 Javascript
改善用户体验的五款jQuery插件分享
2011/05/22 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
Jquery submit()无法提交问题
2013/04/21 Javascript
基于pthread_create,readlink,getpid等函数的学习与总结
2013/07/17 Javascript
js实现获取当前时间是本月第几周的方法
2015/08/11 Javascript
JavaScript闭包实例详解
2016/06/03 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
2016/12/17 Javascript
在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
2017/09/19 NodeJs
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
2018/07/27 Javascript
在Vue中实现随hash改变响应菜单高亮
2020/03/09 Javascript
Vue如何跨组件传递Slot的实现
2020/12/14 Vue.js
零基础写python爬虫之抓取糗事百科代码分享
2014/11/06 Python
Python 给某个文件名添加时间戳的方法
2018/10/16 Python
详解基于python-django框架的支付宝支付案例
2019/09/23 Python
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
2020/03/14 Python
python要安装在哪个盘
2020/06/15 Python
Python用摘要算法生成token及检验token的示例代码
2020/12/01 Python
AmazeUI 输入框组的示例代码
2020/08/14 HTML / CSS
校园广播稿500字
2014/02/04 职场文书
老师的检讨书
2014/02/23 职场文书
学习交流会主持词
2014/04/01 职场文书
研发工程师岗位职责
2014/04/28 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
党员学习正风肃纪思想汇报
2014/09/12 职场文书
2014国庆节商场促销活动策划方案
2014/09/16 职场文书
初中生散播谣言检讨书
2014/11/17 职场文书
客户答谢会致辞
2015/01/20 职场文书
交通事故被告代理词
2015/05/23 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书