关于file_get_contents返回为空或函数不可用的解决方案


Posted in PHP onJune 24, 2013

如果你使用file_get_contents获取远程文件内容返回为空或提示该函数不可用,也许本文能帮到你!
使用file_get_contents和fopen必须空间开启allow_url_fopen。方法:编辑php.ini,设置allow_url_fopen = On,allow_url_fopen关闭时fopen和file_get_contents都不能打开远程文件。如果你使用的是虚拟主机可以考虑用curl函数来代替。
curl函数的使用示例:

$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);

利用function_exists函数来判断php是否支持file_get_contents,否则用curl函数来代替。
PS
1、如果你的主机服务商把curl也关闭了,那你还是换个主机商吧!
2、allow_url_fopen设为off,并不代表你的主机不支持file_get_content函数。只是不能打开远程文件而已。function_exists(‘file_get_contents')返回的是true。所以网上流传的《file_get_contents函数不可用的解决方法》还是不能解决问题。
错误代码:
if (function_exists(‘file_get_contents')) {
$file_contents = @file_get_contents($url);
}else{
$ch = curl_init();
$timeout = 30;
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);
}

应改为:
if (function_exists(‘file_get_contents')) {//判断是否支持file_get_contents
$file_contents = @file_get_contents($url);
}
if ($file_contents == ”) {//判断$file_contents是否为空
$ch = curl_init();
$timeout = 30;
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);
}

最终代码:
function file_get_content($url) {
if (function_exists(‘file_get_contents')) {
$file_contents = @file_get_contents($url);
}
if ($file_contents == ”) {
$ch = curl_init();
$timeout = 30;
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;
}

用法:
echo file_get_content(‘https://3water.com');
PHP 相关文章推荐
php后台程序与Javascript的两种交互方式
Oct 25 PHP
php array_unique之后json_encode需要注意
Jan 02 PHP
SESSION信息保存在哪个文件目录下以及能够用来保存什么类型的数据
Jun 17 PHP
PHP批量生成静态HTML的简单原理和方法
Apr 20 PHP
phpmailer中文乱码问题的解决方法
Apr 22 PHP
CI框架验证码CAPTCHA辅助函数用法实例
Nov 05 PHP
Yii入门教程之目录结构、入口文件及路由设置
Nov 25 PHP
PHP比你想象的好得多
Nov 27 PHP
深入讲解PHP的Yii框架中的属性(Property)
Mar 18 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
Feb 07 PHP
使用phpQuery获取数组的实例
Mar 13 PHP
php实现与python进行socket通信的方法示例
Aug 30 PHP
解析php addslashes()与addclashes()函数的区别和比较
Jun 24 #PHP
解析PHP中ob_start()函数的用法
Jun 24 #PHP
关于ob_get_contents(),ob_end_clean(),ob_start(),的具体用法详解
Jun 24 #PHP
关于php操作mysql执行数据库查询的一些常用操作汇总
Jun 24 #PHP
解析crontab php自动运行的方法
Jun 24 #PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
Jun 24 #PHP
使用PHP遍历文件目录与清除目录中文件的实现详解
Jun 24 #PHP
You might like
PHP获取用户的浏览器与操作系统信息的代码
2012/09/04 PHP
php ci框架验证码实例分析
2013/06/26 PHP
PHP中常用的字符串格式化函数总结
2014/11/19 PHP
Prototype Function对象 学习
2009/07/12 Javascript
javascript随机将第一个dom中的图片添加到第二个div中示例
2013/10/08 Javascript
javascript实现切换td中的值
2014/12/05 Javascript
浅谈JavaScript中setInterval和setTimeout的使用问题
2015/08/01 Javascript
jQuery实现Tab菜单滚动切换的方法
2015/09/21 Javascript
Javascript获取数组中的最大值和最小值的方法汇总
2016/01/01 Javascript
浅谈js中字符和数组一些基本算法题
2016/08/15 Javascript
详解Jquery的事件操作和文档操作
2016/12/19 Javascript
vue实现百度搜索下拉提示功能实例
2017/06/14 Javascript
AngularJS点击添加样式、点击变色设置的实例代码
2017/07/27 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
2018/10/09 Javascript
vue-router启用history模式下的开发及非根目录部署方法
2018/12/23 Javascript
jquery获取file表单选择文件的路径、名字、大小、类型
2019/01/18 jQuery
在Python中使用base64模块处理字符编码的教程
2015/04/28 Python
python安装教程
2018/02/28 Python
Python numpy实现二维数组和一维数组拼接的方法
2018/06/05 Python
情人节快乐! python绘制漂亮玫瑰
2020/08/18 Python
python redis 删除key脚本的实例
2019/02/19 Python
python sorted方法和列表使用解析
2019/11/18 Python
浅谈Python中range与Numpy中arange的比较
2020/03/11 Python
matlab中二维插值函数interp2的使用详解
2020/04/22 Python
Python生成pdf目录书签的实例方法
2020/10/29 Python
用python进行视频剪辑
2020/11/02 Python
解决html5中video标签无法播放mp4问题的办法
2017/05/07 HTML / CSS
美国最受欢迎的童装品牌之一:The Children’s Place
2016/07/23 全球购物
美国排名第一的葡萄酒俱乐部:Firstleaf Wine Club
2020/01/02 全球购物
秋季运动会表扬稿
2014/01/16 职场文书
计算机应届毕业生自荐信范文
2014/02/23 职场文书
《晚上的太阳》教学反思
2014/04/23 职场文书
小学学校门卫岗位职责
2014/08/03 职场文书
党员民主评议总结
2014/10/20 职场文书
2014年统战工作总结
2014/12/09 职场文书
武侯祠导游词
2015/02/04 职场文书