关于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+mysql一个名片库程序
Oct 09 PHP
ADODB结合SMARTY使用~超级强
Nov 25 PHP
简单采集了yahoo的一些数据
Feb 14 PHP
PHP学习之整理字符串
Apr 17 PHP
PHP pathinfo()获得文件的路径、名称等信息说明
Sep 13 PHP
浅析PHP substr,mb_substr以及mb_strcut的区别和用法
Jun 21 PHP
PHP+MySQL删除操作实例
Jan 21 PHP
php查看网页源代码的方法
Mar 13 PHP
PHP+AJAX实现投票功能的方法
Sep 28 PHP
PHP依赖注入(DI)和控制反转(IoC)详解
Jun 12 PHP
thinkPHP中钩子的使用方法实例分析
Nov 16 PHP
Laravel框架生命周期与原理分析
Jun 12 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数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
2011/10/31 PHP
使用PHPMyAdmin修复论坛数据库的图文方法
2012/01/09 PHP
基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据
2015/09/23 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
2017/07/03 PHP
laravel-admin select框默认选中的方法
2019/10/03 PHP
css把超出的部分显示为省略号的方法兼容火狐
2008/07/23 Javascript
js写一个字符串转成驼峰的实例
2013/06/21 Javascript
什么是 AngularJS?AngularJS简介
2014/12/06 Javascript
js实现左侧网页tab滑动门效果代码
2015/09/06 Javascript
JavaScript自定义文本框光标
2017/03/05 Javascript
JS判断数组那点事
2017/10/10 Javascript
详解关于vue2.0工程发布上线操作步骤
2018/09/27 Javascript
关于Layui Table隐藏列问题
2019/09/16 Javascript
js实现超级玛丽小游戏
2020/03/18 Javascript
[00:17]游戏风云独家报道:DD赛后说出数字秘密 吓死你们啊!
2014/07/13 DOTA
Python基于DES算法加密解密实例
2015/06/03 Python
python如何把嵌套列表转变成普通列表
2018/03/20 Python
pandas.DataFrame 根据条件新建列并赋值的方法
2018/04/08 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
2019/01/15 Python
解决Python 命令行执行脚本时,提示导入的包找不到的问题
2019/01/19 Python
结合OpenCV与TensorFlow进行人脸识别的实现
2019/10/10 Python
浅谈python中统计计数的几种方法和Counter详解
2019/11/07 Python
初学者学习Python好还是Java好
2020/05/26 Python
Python代码需要缩进吗
2020/07/01 Python
Python中的流程控制详解
2021/02/18 Python
Booking.com英国官网:全球酒店在线预订网站
2018/04/21 全球购物
个人自我鉴定
2013/11/07 职场文书
教师个人自我评价范文
2014/04/13 职场文书
大学生村官演讲稿
2014/04/25 职场文书
组工干部对照检查材料
2014/08/25 职场文书
2014入党积极分子批评与自我批评思想汇报
2014/09/20 职场文书
四风问题对照检查材料整改措施
2014/09/27 职场文书
2015年暑期社会实践总结
2015/07/13 职场文书
拔河比赛队名及霸气口号
2015/12/24 职场文书
vue3中provide && inject的使用
2021/07/01 Vue.js
SQL基础的查询语句
2021/11/11 MySQL