关于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 相关文章推荐
简单介绍下 PHP5 中引入的 MYSQLI的用途
Mar 19 PHP
PHP 日常开发小技巧
Sep 23 PHP
在PHP中使用curl_init函数的说明
Nov 02 PHP
PHP中计算字符串相似度的函数代码
Dec 29 PHP
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
Jun 02 PHP
如何用php获取程序执行的时间
Jun 09 PHP
thinkphp中ajax与php响应过程详解
Dec 08 PHP
帝国cms常用标签汇总
Jul 06 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
Dec 22 PHP
PHP在线书签系统分享
Jan 04 PHP
PHP在线调试执行的实现方法(附demo源码)
Apr 28 PHP
Laravel配合jwt使用的方法实例
Oct 25 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
如何在symfony中导出为CSV文件中的数据
2011/10/06 PHP
PHP常用处理静态操作类
2015/04/03 PHP
PHP函数func_num_args用法实例分析
2015/12/07 PHP
PHP中md5()函数的用法讲解
2019/03/30 PHP
jQuery温习篇 强大的JQuery选择器
2010/04/24 Javascript
JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
2012/10/11 Javascript
利用JQuery动画制作滑动菜单项效果实现步骤及代码
2013/02/07 Javascript
20行代码实现的一个CSS覆盖率测试脚本
2013/07/07 Javascript
js与jquery实时监听输入框值的oninput与onpropertychange方法
2015/02/05 Javascript
浅谈jquery高级方法描述与应用
2016/10/04 Javascript
纯JS打造网页中checkbox和radio的美化效果
2016/10/13 Javascript
js获取当前页的URL与window.location.href简单方法
2017/02/13 Javascript
使用JS组件实现带ToolTip验证框的实例代码
2017/08/23 Javascript
用p5.js制作烟花特效的示例代码
2018/03/21 Javascript
解决vue数组中对象属性变化页面不渲染问题
2018/08/09 Javascript
JS实现点击拉拽轮播图pc端移动端适配
2018/09/05 Javascript
详解微信小程序与内嵌网页交互实现支付功能
2018/10/22 Javascript
jQuery动态操作表单示例【基于table表格】
2018/12/06 jQuery
js getBoundingClientRect使用方法详解
2019/07/17 Javascript
vue移动端模态框(可传参)的实现
2019/11/20 Javascript
微信小程序中网络请求缓存的解决方法
2019/12/29 Javascript
[18:16]sakonoko 2017年卡尔集锦
2018/02/06 DOTA
Python实现批量转换文件编码的方法
2015/07/28 Python
基python实现多线程网页爬虫
2015/09/06 Python
用python实现的线程池实例代码
2018/01/06 Python
python批量读取txt文件为DataFrame的方法
2018/04/03 Python
Python3如何对urllib和urllib2进行重构
2019/11/25 Python
使用Python测试Ping主机IP和某端口是否开放的实例
2019/12/17 Python
通过实例学习Python Excel操作
2020/01/06 Python
Python3.9新特性详解
2020/10/10 Python
《蓝色的树叶》教学反思
2014/02/24 职场文书
中学生社会实践活动总结
2014/07/03 职场文书
甜品店创业计划书
2014/09/21 职场文书
2014年环境卫生工作总结
2014/11/24 职场文书
初中语文教师研修日志
2015/11/13 职场文书
js判断两个数组相等的5种方法
2022/05/06 Javascript