这里有新鲜出炉的 PHP 教程,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,入门门槛较低,易于学习,使用广泛,主要适用于 web 开发领域。PHP 的文件后缀名为 php。
php fread 函数用于从文件中读取一定长度的字符,本文章向大家介绍 fread 读取文件的实例以及使用该函数读取文件需要注意的几个地方,需要的朋友可以参考一下。
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 读吧。
来源: http://www.phperz.com/article/17/0806/342495.html