深入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原理之异常机制深入分析
Aug 08 PHP
php设计模式 Factory(工厂模式)
Jun 26 PHP
php explode函数实例代码
Feb 27 PHP
对淘宝URL中ID提取的PHP代码
Sep 01 PHP
ThinkPHP令牌验证实例
Jun 18 PHP
Yii使用find findAll查找出指定字段的实现方法
Sep 05 PHP
php实现检查文章是否被百度收录
Jan 27 PHP
php对接java现实加签验签的实例
Nov 25 PHP
php获取今日开始时间和结束时间的方法
Feb 27 PHP
php对微信支付回调处理的方法
Aug 23 PHP
PHP 7.4中使用预加载的方法详解
Jul 08 PHP
Laravel框架实现文件上传的方法分析
Sep 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中ob_flush和flush的区别
2014/11/27 PHP
php实现Session存储到Redis
2015/11/11 PHP
PHP5.3新特性小结
2016/02/14 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
PHP 对象接口简单实现方法示例
2020/04/13 PHP
javascript 仿QQ滑动菜单效果代码
2010/09/03 Javascript
50个比较实用jQuery代码段
2011/09/18 Javascript
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
2013/07/05 Javascript
JS简单的图片放大缩小的两种方法
2013/11/11 Javascript
打造个性化的功能强大的Jquery虚拟键盘(VirtualKeyboard)
2014/10/11 Javascript
JavaScript中var关键字的使用详解
2015/08/14 Javascript
js获取新浪天气接口的实现代码
2016/06/06 Javascript
Angular.js中控制器之间的传值详解
2017/04/24 Javascript
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
2017/07/17 jQuery
详解Nodejs get获取远程服务器接口数据
2019/03/26 NodeJs
vue实现吸顶、锚点和滚动高亮按钮效果
2019/10/21 Javascript
JS Web Flex弹性盒子模型代码实例
2020/03/10 Javascript
vue实现div单选多选功能
2020/07/16 Javascript
使用Python中PDB模块中的命令来调试Python代码的教程
2015/03/30 Python
python3使用pyqt5制作一个超简单浏览器的实例
2017/10/19 Python
Python利用heapq实现一个优先级队列的方法
2019/02/03 Python
python实现最大子序和(分治+动态规划)
2019/07/05 Python
Python imageio读取视频并进行编解码详解
2019/12/10 Python
如何使用Python多线程测试并发漏洞
2019/12/18 Python
pytorch:model.train和model.eval用法及区别详解
2020/02/20 Python
django之从html页面表单获取输入的数据实例
2020/03/16 Python
python time()的实例用法
2020/11/03 Python
Django自定义YamlField实现过程解析
2020/11/11 Python
程序设计HTML5 Canvas API
2013/04/08 HTML / CSS
如何进行有效的自我评价
2013/09/27 职场文书
妇科医生自荐信
2013/11/05 职场文书
自荐信如何制作?
2014/02/21 职场文书
党员剖析材料范文
2014/09/30 职场文书
学校机关党总支领导班子整改工作方案
2014/10/26 职场文书
2015年营销工作总结范文
2015/04/23 职场文书
Django如何与Ajax交互
2021/04/29 Python