关于php fread()使用技巧


Posted in PHP onJanuary 22, 2010

说明
string fread ( int handle, int length )
fread() 从文件指针 handle 读取最多 length 个字节。该函数在读取完最多 length 个字节数,或到达 EOF 的时候,或(对于网络流)当一个包可用时,或(在打开用户空间流之后)已读取了 8192 个字节时就会停止读取文件,视乎先碰到哪种情况。
返回所读取的字符串,如果出错返回 FALSE。

<?php 
// get contents of a file into a string 
$filename = "/usr/local/something.txt"; 
$handle = fopen($filename, "r"); 
$contents = fread($handle, filesize ($filename)); 
fclose($handle); 
?>

警告
在区分二进制文件和文本文件的系统上(如 Windows)打开文件时,fopen() 函数的 mode 参数要加上 'b'。
<?php 
$filename = "c:\\files\\somepic.gif"; 
$handle = fopen($filename, "rb"); 
$contents = fread($handle, filesize ($filename)); 
fclose($handle); 
?>

警告
当从任何不是普通本地文件读取时,例如在读取从远程文件或 popen() 以及 proc_open() 返回的流时,读取会在一个包可用之后停止。这意味着应该如下例所示将数据收集起来合并成大块。
<?php 
// 对 PHP 5 及更高版本 
$handle = fopen("http://www.example.com/", "rb"); 
$contents = stream_get_contents($handle); 
fclose($handle); 
?> <?php 
$handle = fopen ("http://www.example.com/", "rb"); 
$contents = ""; 
while (!feof($handle)) { 
$contents .= fread($handle, 8192); 
} 
fclose($handle); 
?>

注意: 如果只是想将一个文件的内容读入到一个字符串中,用 file_get_contents(),它的性能比上面的代码好得多。
额外:
file_get_contents
(PHP 4 >= 4.3.0, PHP 5)
file_get_contents -- 将整个文件读入一个字符串
说明
string file_get_contents ( string filename [, bool use_include_path [, resource context [, int offset [, int maxlen]]]] )

和 file() 一样,只除了 file_get_contents() 把文件读入一个字符串。将在参数 offset 所指定的位置开始读取长度为 maxlen 的内容。如果失败,file_get_contents() 将返回 FALSE。
file_get_contents() 函数是用来将文件的内容读入到一个字符串中的首选方法。如果操作系统支持还会使用内存映射技术来增强性能。

PHP 相关文章推荐
简单的PHP留言本实例代码
May 09 PHP
PHP学习笔记之一
Jan 17 PHP
PHP如何抛出异常处理错误
Mar 02 PHP
PHP IF ELSE简化/三元一次式的使用
Aug 22 PHP
Yii使用ajax验证显示错误messagebox的解决方法
Dec 03 PHP
php基于GD库画五星红旗的方法
Feb 24 PHP
php简单处理XML数据的方法示例
May 19 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
Apr 21 PHP
php通过各种函数判断0和空
Jul 04 PHP
yii2的restful api路由实例详解
May 14 PHP
php5对象复制、clone、浅复制与深复制实例详解
Aug 14 PHP
Laravel5.1 框架Middleware中间件基本用法实例分析
Jan 04 PHP
PHP 时间转换Unix时间戳代码
Jan 22 #PHP
PHP 实用代码收集
Jan 22 #PHP
在命令行下运行PHP脚本[带参数]的方法
Jan 22 #PHP
php获取url字符串截取路径的文件名和扩展名的函数
Jan 22 #PHP
PHP has encountered an Access Violation 错误的解决方法
Jan 17 #PHP
获取远程文件大小的php函数
Jan 11 #PHP
PHP 编程安全性小结
Jan 08 #PHP
You might like
PHP通过header实现文本文件下载的代码
2010/08/08 PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
2015/03/26 PHP
php使用ob_flush不能每隔一秒输出原理分析
2015/06/02 PHP
List the Codec Files on a Computer
2007/06/11 Javascript
javascript css在IE和Firefox中区别分析
2009/02/18 Javascript
基于jquery的地址栏射击游戏代码
2011/03/10 Javascript
javascript使用中为什么10..toString()正常而10.toString()出错呢
2013/01/11 Javascript
深入理解javascript动态插入技术
2013/11/12 Javascript
Javascript 中创建自定义对象的方法汇总
2014/12/04 Javascript
Jquery 实现图片轮换
2015/01/28 Javascript
7个让JavaScript变得更好的注意事项
2015/01/28 Javascript
js实现TAB切换对应不同颜色的代码
2015/08/31 Javascript
JS实现淘宝支付宝网站的控制台菜单效果
2015/09/28 Javascript
Bootstrap缩略图的创建方法
2017/03/22 Javascript
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
2017/05/01 jQuery
React-router 4 按需加载的实现方式及原理详解
2017/05/25 Javascript
JavaScript轮播停留效果的实现思路
2018/05/24 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
2019/05/28 Javascript
layui lay-verify form表单自定义验证规则详解
2019/09/18 Javascript
微信小程序实现上拉加载功能示例【加载更多数据/触底加载/点击加载更多数据】
2020/05/29 Javascript
JS代码简洁方式之函数方法详解
2020/07/28 Javascript
Python实现的Excel文件读写类
2015/07/30 Python
简单介绍使用Python解析并修改XML文档的方法
2015/10/15 Python
Python程序中的观察者模式结构编写示例
2016/05/27 Python
解决python3在anaconda下安装caffe失败的问题
2017/06/15 Python
Python实现针对含中文字符串的截取功能示例
2017/09/22 Python
对pycharm 修改程序运行所需内存详解
2018/12/03 Python
Python模拟百度自动输入搜索功能的实例
2019/02/14 Python
python mysql自增字段AUTO_INCREMENT值的修改方式
2020/05/18 Python
python hmac模块验证客户端的合法性
2020/11/07 Python
华为俄罗斯官方网上商城:购买Huawei手机和平板
2017/04/21 全球购物
创建青年文明号材料
2014/05/09 职场文书
施工安全责任书范本
2014/07/24 职场文书
2015年学校财务工作总结
2015/05/19 职场文书
《中华上下五千年》读后感3篇
2019/11/29 职场文书
Python socket如何解析HTTP请求内容
2022/02/12 Python