关于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 相关文章推荐
使用无限生命期Session的方法
Oct 09 PHP
PHP编程中字符串处理的5个技巧小结
Nov 13 PHP
php getimagesize 上传图片的长度和宽度检测代码
May 15 PHP
php查看当前Session的ID实例
Mar 16 PHP
利用“多说”制作留言板、评论系统
Jul 14 PHP
Yii2搭建后台并实现rbac权限控制完整实例教程
Apr 28 PHP
Yii调试查看执行SQL语句的方法
Jul 15 PHP
PHP用正则匹配form表单中所有元素的类型和属性值实例代码
Feb 28 PHP
thinkphp中U方法按路由规则生成url的方法
Mar 12 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
Jun 10 PHP
php查看一个变量的占用内存的实例代码
Mar 29 PHP
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
Apr 13 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&amp;MYSQL分页原理及实现
2007/01/02 PHP
关于Appserv无法打开localhost问题的解决方法
2009/10/16 PHP
php产生随机数的两种方法实例代码 输出随机IP
2011/04/08 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
2013/06/03 PHP
PHP变量内存分配问题记录整理
2013/11/27 PHP
php自定义apk安装包实例
2014/10/20 PHP
你所要知道JS(DHTML)中的一些技巧
2007/01/09 Javascript
JavaScript asp.net 获取当前超链接中的文本
2009/04/14 Javascript
WEB页子窗口(showModalDialog和showModelessDialog)使用说明
2009/10/25 Javascript
分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码
2011/09/21 Javascript
深入理解JavaScript 闭包究竟是什么
2013/04/12 Javascript
js实现字符串的16进制编码不加密
2014/04/25 Javascript
jQuery中:header选择器用法实例
2014/12/29 Javascript
Javascript中document.referrer隐藏来源的方法
2017/01/16 Javascript
JS实现上传图片实时预览功能
2017/05/22 Javascript
JavaScript 数组去重并统计重复元素出现的次数实例
2017/12/14 Javascript
node.js读取Excel数据(下载图片)的方法示例
2018/08/02 Javascript
Python使用poplib模块和smtplib模块收发电子邮件的教程
2016/07/02 Python
使用pip发布Python程序的方法步骤
2018/10/11 Python
pthon贪吃蛇游戏详细代码
2019/01/27 Python
python如何将两个txt文件内容合并
2019/10/18 Python
pytorch实现seq2seq时对loss进行mask的方式
2020/02/18 Python
Allsole美国/加拿大:英国一家专门出售品牌鞋子的网站
2018/10/21 全球购物
be2台湾单身男女交友:全球网路婚姻介绍的领导品牌
2019/10/11 全球购物
Bata印度官网:源自欧洲舒适鞋履品牌
2020/01/30 全球购物
愚人节活动策划方案
2014/03/11 职场文书
大学共青团员个人自我评价
2014/04/16 职场文书
金融专业毕业生自荐信
2014/06/26 职场文书
2015年中秋节活动总结
2015/03/23 职场文书
2015年暑期见闻
2015/07/14 职场文书
小学家庭教育心得体会
2016/01/14 职场文书
汉语拼音教学反思
2016/02/22 职场文书
公开致歉信
2019/06/24 职场文书
交通安全宣传标语(100条)
2019/08/22 职场文书
为什么mysql字段要使用NOT NULL
2021/05/13 MySQL
Windows安装Anaconda3的方法及使用过程详解
2021/06/11 Python