php fread读取文件注意事项


Posted in PHP onSeptember 24, 2016

php fread函数介绍

string fread ( int handle, int length )

fread() 从文件指针 handle 读取最多 length 个字节。该函数在读取完最多 length 个字节数,或到达 EOF 的时候,或(对于网络流)当一个包可用时,或(在打开用户空间流之后)已读取了 8192 个字节时就会停止读取文件。

fread()实例:

<?php
  $file = "data.txt";
  $fh = fopen($file, "rt");
  $userdata = fread($fh, filesize($file));
  fclose($fh);
?>

php使用fread需要注意的几点

1、fread读取写入大文件出错的解决办法

使用fread读取文件时如果超过php.ini中设置的最大内存使用值时 会提示错误,下面的方法解决读取大文件的问题:

<? 
  set_time_limit(0);//设置脚本执行时间无限长 
  $flie="flexbuilder_linux_install_a5_112409.bin";//大文件超过php.ini中的内存配置 
  $fp=fopen($flie,"r"); 
  $content=""; 
  $filename="123.bin";//存为新文件 
  $handle=fopen($filename,"a");//写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之 
  while(!feof($fp)){//测试文件指针是否到了文件结束的位置 
    $content=fread($fp,1024); 
    fwrite($handle,$content); 
  } 
  fclose($fp); 
  fclose($handle); 
  echo "数据成功写入文件"; 
?>

2、php fread()是如何识别文件编码的

<?php
$handler=fopen('a.txt','rb')//二进制方式打开
$content=fread($handler,1024);
echo $content;
?>

fread以字符串形式返回,那它是如何识别a.txt使用的编码方式的呢,才能保证不乱码的呢?

PHP7.0以下的版本的文件操作中没有识别字符编码。

只是按字节数据输出,如果和php源码文件和输出的html的字符编码一致就能正确显示。

 3、fread读取文件总是会多一个空字符

$fileSize = filesize($filePath);
$handle = fopen($filePath, "rb"); 
while (!feof($handle)) {
    var_dump(fread($handle, $fileSize));
    //会多输出一次空字符
}

当我们使用上面代码读取文件,有时会多一个空字符。这是因为你是WINDOWS平台,文件是文本打开存储的内容,末尾会有一个特殊字节标识文件结束,你用rb打开自然就可以读到最后那个特殊字节了。用r打开,fgets读吧。

通过此文希望能帮助到大家,谢谢大家对本站的支持!

PHP 相关文章推荐
一个SQL管理员的web接口
Oct 09 PHP
模仿OSO的论坛(五)
Oct 09 PHP
简单示例AJAX结合PHP代码实现登录效果代码
Jul 25 PHP
PHP下通过系统信号量加锁方式获取递增序列ID
Sep 25 PHP
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
Nov 02 PHP
table标签的结构与合并单元格的实现方法
Jul 24 PHP
PHP生成sitemap.xml地图函数
Nov 13 PHP
php ci框架中加载css和js文件失败的解决方法
Mar 03 PHP
php无限级分类实现方法分析
Oct 19 PHP
PHP中静态变量的使用方法实例分析
Dec 01 PHP
php 截取中英文混合字符串的方法
May 31 PHP
PHP获取星期几的常用方法小结
Dec 18 PHP
一个简单安全的PHP验证码类、PHP验证码
Sep 24 #PHP
jquery不支持toggle()高(新)版本的问题解决
Sep 24 #PHP
php getcwd与dirname(__FILE__)区别详解
Sep 24 #PHP
mysql desc(DESCRIBE)命令实例讲解
Sep 24 #PHP
mysql alter table命令修改表结构实例详解
Sep 24 #PHP
Ajax和PHP正则表达式验证表单及验证码
Sep 24 #PHP
mysql查找删除重复数据并只保留一条实例详解
Sep 24 #PHP
You might like
PHP中的Memcache详解
2014/04/05 PHP
怎样搭建PHP开发环境
2015/07/28 PHP
php实现在站点里面添加邮件发送的功能
2020/04/28 PHP
Javascript调用C#代码
2011/01/17 Javascript
jquery获取一个元素下面相同子元素的个数代码
2014/07/31 Javascript
jquery删除指定子元素代码实例
2015/01/13 Javascript
JavaScript中对象的不同创建方法
2016/08/12 Javascript
Bootstrap幻灯片轮播图支持触屏左右手势滑动的实现方法
2016/10/13 Javascript
JavaScript简单生成 N~M 之间随机数的方法
2017/01/13 Javascript
让你5分钟掌握9个JavaScript小技巧
2018/06/09 Javascript
react 兄弟组件如何调用对方的方法示例
2018/10/23 Javascript
教你使用vue-cli快速构建的小说阅读器
2019/05/13 Javascript
Python实现求最大公约数及判断素数的方法
2015/05/26 Python
Python3实现的字典遍历操作详解
2018/04/18 Python
python 获取utc时间转化为本地时间的方法
2018/12/31 Python
python中pygame安装过程(超级详细)
2019/08/04 Python
python使用列表的最佳方案
2020/08/12 Python
python 如何对logging日志封装
2020/12/02 Python
canvas实现俄罗斯方块的方法示例
2018/12/13 HTML / CSS
html5 浏览器支持 如何让所有的浏览器都支持HTML5标签样式
2012/12/07 HTML / CSS
html5 http的轮询和Websocket原理
2018/10/19 HTML / CSS
意大利综合购物网站:Giordano Shop
2016/10/21 全球购物
香港连卡佛百货官网:Lane Crawford
2019/09/04 全球购物
网络体系结构及协议的定义
2014/03/13 面试题
营业经理岗位职责
2013/11/10 职场文书
专业幼师实习生自我鉴定范文
2013/12/08 职场文书
生产部统计员岗位职责
2014/01/05 职场文书
青年教师典范事迹材料
2014/01/31 职场文书
材料工程专业毕业生求职信
2014/03/04 职场文书
对祖国的寄语大全
2014/04/11 职场文书
公司口号大全
2014/06/11 职场文书
离职证明范本(5篇)
2014/09/19 职场文书
教师个人自我剖析材料
2014/09/29 职场文书
2015年乡镇纪委工作总结
2015/05/26 职场文书
数据结构课程设计心得体会
2016/01/15 职场文书
详解Android中的TimePickerView(时间选择器)的用法
2022/04/30 Java/Android