深入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类
Jul 15 PHP
如何在PHP中进行身份认证
Oct 09 PHP
php面向对象全攻略 (七) 继承性
Sep 30 PHP
PHP--用万网的接口实现域名查询功能
Dec 13 PHP
php 判断是否是中文/英文/数字示例代码
Sep 30 PHP
php将html转成wml的WAP标记语言实例
Jul 08 PHP
php使用ZipArchive函数实现文件的压缩与解压缩
Oct 27 PHP
thinkPHP分组后模板无法加载问题解决方法
Jul 12 PHP
遍历echsop的region表形成缓存的程序实例代码
Nov 01 PHP
PHP laravel中的多对多关系实例详解
Jun 07 PHP
PHP的mysqli_stat()函数讲解
Jan 23 PHP
phpStudy vscode 搭建debug调试的教程详解
Jul 28 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
PHP5.4中json_encode中文转码的变化小结
2013/01/30 PHP
关于尾递归的使用详解
2013/05/02 PHP
JQuery的ajax基础上的超强GridView展示
2009/09/18 Javascript
JavaScript 学习笔记(十一)
2010/01/19 Javascript
浅说js变量
2011/05/25 Javascript
微信小程序动态显示项目倒计时效果
2017/06/13 Javascript
基于JS代码实现简单易用的倒计时 x 天 x 时 x 分 x 秒效果
2017/07/13 Javascript
用Vue.extend构建消息提示组件的方法实例
2017/08/08 Javascript
详解React Native网络请求fetch简单封装
2017/08/10 Javascript
一篇文章,教你学会Vue CLI 插件开发
2019/04/17 Javascript
ES2020 已定稿,真实场景案例分析
2020/05/25 Javascript
js面向对象封装级联下拉菜单列表的实现步骤
2021/02/08 Javascript
python 3.5下xadmin的使用及修复源码bug
2017/05/10 Python
Python基于递归算法实现的走迷宫问题
2017/08/04 Python
读取本地json文件,解析json(实例讲解)
2017/12/06 Python
python+selenium实现QQ邮箱自动发送功能
2019/01/23 Python
如何使用python爬虫爬取要登陆的网站
2019/07/12 Python
pycharm快捷键汇总
2020/02/14 Python
python分别打包出32位和64位应用程序
2020/02/18 Python
Python3如何使用多线程升程序运行速度
2020/08/11 Python
简单了解Python字典copy与赋值的区别
2020/09/16 Python
HTML+CSS3模拟心的跳动实例代码
2017/09/05 HTML / CSS
触发器(trigger)的功能都有哪些?写出一个触发器的例子
2012/09/17 面试题
实习会计求职自荐信范文
2014/03/10 职场文书
护士节策划方案
2014/05/19 职场文书
冬季安全检查方案
2014/05/23 职场文书
幼儿园运动会口号
2014/06/07 职场文书
电子商务专业毕业生自荐书
2014/06/22 职场文书
异地年检委托书范本
2014/09/24 职场文书
武当山导游词
2015/02/03 职场文书
社区文明倡议书
2015/04/28 职场文书
2016国培研修心得体会
2016/01/08 职场文书
校园安全教育心得体会
2016/01/15 职场文书
带你了解CSS基础知识,样式
2021/07/21 HTML / CSS
html中相对位置与绝对位置的具体使用
2022/05/15 HTML / CSS
安装harbor作为docker镜像仓库的问题
2022/06/14 Servers