关于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 在线翻译函数代码
May 07 PHP
工厂模式在Zend Framework中应用介绍
Jul 10 PHP
php curl 伪造IP来源的实例代码
Nov 01 PHP
php获取服务器信息的实现代码
Feb 04 PHP
php自动加载机制的深入分析
Jun 08 PHP
php目录操作实例代码
Feb 21 PHP
destoon文章模块调用企业会员资料的方法
Aug 22 PHP
php三种实现多线程类似的方法
Oct 30 PHP
图文详解phpstorm配置Xdebug进行调试PHP教程
Jun 13 PHP
php实现36进制与10进制转换功能示例
Jan 10 PHP
php-fpm添加service服务的例子
Apr 27 PHP
PHP Cli 模式设置进程名称的方法
Jun 12 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
解密ThinkPHP3.1.2版本之独立分组功能应用
2014/06/19 PHP
PHP微信开发之微信录音临时转永久存储
2018/01/26 PHP
让IE8支持DOM 2(不用框架!)
2009/12/31 Javascript
ext jquery 简单比较
2010/04/07 Javascript
jQuery 实现侧边浮动导航菜单效果
2014/12/26 Javascript
基于zepto.js实现仿手机QQ空间的大图查看组件ImageView.js详解
2015/03/05 Javascript
Juery解决tablesorter中文排序和字符范围的方法
2015/05/06 Javascript
JavaScript实现自动对页面上敏感词进行屏蔽的方法
2015/07/27 Javascript
详解javascript遍历方式
2015/11/11 Javascript
HTML5 Shiv完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
2015/11/25 Javascript
js+canvas绘制矩形的方法
2016/01/28 Javascript
基于BootStrap实现局部刷新分页实例代码
2016/08/08 Javascript
Vue.js实现简单ToDoList 前期准备(一)
2016/12/01 Javascript
Bootstrap基本组件学习笔记之input输入框组(9)
2016/12/07 Javascript
Angularjs中使用轮播图指令swiper
2017/05/30 Javascript
详解Vue 事件修饰符capture 的使用
2017/12/29 Javascript
mint-ui 时间插件使用及获取选择值的方法
2018/02/09 Javascript
JavaScript Window窗口对象属性和使用方法
2020/01/19 Javascript
[48:54]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第二场 6.3
2018/06/04 DOTA
深入理解Python对Json的解析
2017/02/14 Python
[原创]windows下Anaconda的安装与配置正解(Anaconda入门教程)
2018/04/05 Python
numpy向空的二维数组中添加元素的方法
2018/11/01 Python
Python的iOS自动化打包实例代码
2018/11/22 Python
浅谈python中统计计数的几种方法和Counter详解
2019/11/07 Python
python实现飞机大战项目
2020/03/11 Python
详解PyQt5信号与槽的几种高级玩法
2020/03/24 Python
.net面试题
2016/09/17 面试题
高中生校园生活自我评价
2013/09/19 职场文书
电子商务专业在校生实习自我鉴定
2013/09/29 职场文书
水务局局长岗位职责
2013/11/28 职场文书
幼儿园中班新学期寄语
2014/01/18 职场文书
房产公证书范本
2014/04/10 职场文书
高中生评语大全
2014/04/25 职场文书
论文致谢词范文
2015/05/14 职场文书
车间安全生产管理制度
2015/08/06 职场文书
三八红旗手主要事迹材料
2015/11/04 职场文书