深入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 相关文章推荐
php zlib压缩和解压缩swf文件的代码
Dec 30 PHP
《PHP编程最快明白》第五讲:php目录、文件操作
Nov 01 PHP
php中突破基于HTTP_REFERER的防盗链措施(stream_context_create)
Mar 29 PHP
使用Discuz关键词服务器实现PHP中文分词
Mar 11 PHP
php实现mysql封装类示例
May 07 PHP
使用YUI+Ant 实现JS CSS压缩
Sep 02 PHP
PHP中的output_buffering详细介绍
Sep 27 PHP
php提取字符串中网站url地址的方法
Dec 03 PHP
php简单的上传类分享
May 15 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
Oct 20 PHP
PHP中STDCLASS用法实例分析
Nov 11 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
Mar 31 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 配置文件中open_basedir选项作用
2009/07/19 PHP
php file_get_contents抓取Gzip网页乱码的三种解决方法
2013/11/12 PHP
Yii2.0实现的批量更新及批量插入功能示例
2019/01/29 PHP
Yii框架函数简单用法分析
2019/09/09 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
php回调函数处理数组操作示例
2020/04/13 PHP
关于PHP求解三数之和问题详析
2020/11/09 PHP
通过jquery实现tab标签浏览效果
2007/02/20 Javascript
JavaScript XML实现两级级联下拉列表
2008/11/10 Javascript
利用JQuery+EasyDrag 实现弹出可拖动的Div,同时向Div传值,然后返回Div选中的值
2009/10/24 Javascript
javascript图像处理—仿射变换深度理解
2013/01/16 Javascript
jQuery获取Radio,CheckBox选择的Value值(示例代码)
2013/12/12 Javascript
javascript使用正则控制input输入框允许输入的值方法大全
2014/06/19 Javascript
jQuery圆形统计图开发实例
2015/01/04 Javascript
jquery插件corner实现圆角边框的方法
2015/03/09 Javascript
JS实现仿google、百度搜索框输入信息智能提示的实现方法
2015/04/20 Javascript
codeMirror插件使用讲解
2017/01/16 Javascript
单击按钮发送验证码,出现倒计时的简单实例
2017/03/17 Javascript
我所理解的JavaScript中的this指向
2020/09/04 Javascript
[45:16]完美世界DOTA2联赛循环赛 IO vs FTD BO2第二场 11.05
2020/11/06 DOTA
python基于socket实现网络广播的方法
2015/04/29 Python
举例简单讲解Python中的数据存储模块shelve的用法
2016/03/03 Python
Python的消息队列包SnakeMQ使用初探
2016/06/29 Python
浅述python中argsort()函数的实例用法
2017/03/30 Python
Python实现扩展内置类型的方法分析
2017/10/16 Python
python绘制立方体的方法
2018/07/02 Python
浅析Python函数式编程
2018/10/06 Python
python使用turtle绘制国际象棋棋盘
2019/05/23 Python
python cv2在验证码识别中应用实例解析
2019/12/25 Python
Python内建序列通用操作6种实现方法
2020/03/26 Python
编写html5时调试发现脚本php等网页js、css等失效
2013/12/31 HTML / CSS
联想法国官方网站:Lenovo法国
2018/10/18 全球购物
linux比较文件内容的命令是什么
2013/03/04 面试题
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?
2016/08/18 面试题
Python基础之赋值,浅拷贝,深拷贝的区别
2021/04/30 Python
Nginx跨域问题解析与解决
2022/08/05 Servers