深入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 相关文章推荐
用文本文件制作留言板提示(下)
Oct 09 PHP
php将数据库中的电话号码读取出来并生成图片
Aug 31 PHP
探讨PHP中this,self,parent的区别详解
Jun 08 PHP
PHP安全的URL字符串base64编码和解码
Jun 19 PHP
php实现的太平洋时间和北京时间互转的自定义函数分享
Aug 19 PHP
php管理nginx虚拟主机shell脚本实例
Nov 19 PHP
php使用pdo连接mssql server数据库实例
Dec 25 PHP
PHP 数据结构队列(SplQueue)和优先队列(SplPriorityQueue)简单使用实例
May 12 PHP
PHP7.0版本备注
Jul 23 PHP
浅谈PHP中的
Apr 23 PHP
PHP脚本自动识别验证码查询汽车违章
Dec 20 PHP
利用ajax和PHP实现简单的流程管理
Mar 23 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中文字母数字验证码实现代码
2008/04/25 PHP
PHP array 的加法操作代码
2010/07/24 PHP
php中将地址生成迅雷快车旋风链接的代码[测试通过]
2011/04/20 PHP
PHP操作mysql函数详解,mysql和php交互函数
2011/05/19 PHP
php去除二维数组的重复项方法
2015/11/03 PHP
CodeIgniter整合Smarty的方法详解
2017/08/25 PHP
PHP7 安装event扩展的实现方法
2019/10/08 PHP
php多进程并发编程防止出现僵尸进程的方法分析
2020/02/28 PHP
javascript之锁定表格栏位
2007/06/29 Javascript
js 数组操作代码集锦
2009/04/28 Javascript
Js点击弹出下拉菜单效果实例
2013/08/12 Javascript
浅谈 jQuery 事件源码定位问题
2014/06/18 Javascript
JS获取浏览器语言动态加载JS文件示例代码
2014/10/31 Javascript
js实现可得到不同颜色值的颜色选择器实例
2015/02/28 Javascript
聊一聊JavaScript作用域和作用域链
2016/05/03 Javascript
vue-router+vuex addRoutes实现路由动态加载及菜单动态加载
2017/09/28 Javascript
微信小程序实现预览图片功能
2020/10/22 Javascript
微信小程序canvas开发水果老虎机的思路详解
2020/02/07 Javascript
js 解析 JSON 数据简单示例
2020/04/21 Javascript
[01:01:13]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第三场
2018/04/06 DOTA
详解Python3 pandas.merge用法
2019/09/05 Python
对python中assert、isinstance的用法详解
2019/11/27 Python
python适合做数据挖掘吗
2020/06/16 Python
CSS3 渐变(Gradients)之CSS3 径向渐变
2016/07/08 HTML / CSS
巴西最大的体育用品商城:Netshoes巴西
2016/11/29 全球购物
迅雷Cued工作心得体会
2014/01/27 职场文书
授权委托书格式
2014/07/31 职场文书
优秀党员学习焦裕禄精神思想汇报范文
2014/09/10 职场文书
行政执法作风整顿剖析材料
2014/10/11 职场文书
违反交通安全法检讨书
2014/10/24 职场文书
四风问题自查自纠工作情况报告
2014/10/28 职场文书
委托证明范本
2014/11/25 职场文书
2016年国培心得体会及反思
2016/01/13 职场文书
创业计划书之花店
2019/09/20 职场文书
Python基础之Socket通信原理
2021/04/22 Python
Vue2项目中对百度地图的封装使用详解
2022/06/16 Vue.js