关于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+DBM的同学录程序(3)
Oct 09 PHP
Smarty结合Ajax实现无刷新留言本实例
Jan 02 PHP
php 采集书并合成txt格式的实现代码
Mar 01 PHP
php页面跳转代码 输入网址跳转到你定义的页面
Mar 28 PHP
php实现window平台的checkdnsrr函数
May 27 PHP
利用“多说”制作留言板、评论系统
Jul 14 PHP
ThinkPHP自定义Redis处理SESSION的实现方法
May 16 PHP
thinkphp整合微信支付代码分享
Nov 24 PHP
PHP 实现页面静态化的几种方法
Jul 23 PHP
详解Laravel设置多态关系模型别名的方式
Oct 17 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
Feb 21 PHP
Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境
Mar 29 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中的foreach函数
2013/08/31 PHP
php中文验证码实现示例分享
2014/01/12 PHP
PHP随机生成随机个数的字母组合示例
2014/01/14 PHP
Laravel执行migrate命令提示:No such file or directory的解决方法
2016/03/16 PHP
Thinkphp5.0框架视图view的模板布局用法分析
2019/10/12 PHP
function, new function, new Function之间的区别
2007/03/08 Javascript
JS 无限级 Select效果实现代码(json格式)
2011/08/30 Javascript
jquery导航制件jquery鼠标经过变色效果示例
2013/12/05 Javascript
ExtJS如何设置与获取radio控件的选取状态
2014/01/22 Javascript
Node.js插件的正确编写方式
2014/08/03 Javascript
jQuery中[attribute]选择器用法实例
2014/12/31 Javascript
JavaScript中使用Object.prototype.toString判断是否为数组
2015/04/01 Javascript
MVVM模式中ViewModel和View、Model有什么区别?
2015/06/19 Javascript
plupload+artdialog实现多平台上传文件
2016/07/19 Javascript
jQuery动态创建元素以及追加节点的实现方法
2016/10/20 Javascript
jQuery实现拖动剪裁图片作为头像
2016/12/28 Javascript
JavaScript for循环 if判断语句(学习笔记)
2017/10/11 Javascript
Material(包括Material Icon)在Angular2中的使用详解
2018/02/11 Javascript
利用vue.js把静态json绑定bootstrap的table方法
2018/08/28 Javascript
vue按需加载实例详解
2019/09/06 Javascript
详解element-ui 表单校验 Rules 配置 常用黑科技
2020/07/11 Javascript
基于vue的video播放器的实现示例
2021/02/19 Vue.js
跟老齐学Python之重回函数
2014/10/10 Python
python自定义类并使用的方法
2015/05/07 Python
利用python程序帮大家清理windows垃圾
2017/01/15 Python
利用python微信库itchat实现微信自动回复功能
2017/05/18 Python
python之virtualenv的简单使用方法(必看篇)
2017/11/25 Python
Python创建一个元素都为0的列表实例
2019/11/28 Python
python将下载到本地m3u8视频合成MP4的代码详解
2020/11/24 Python
用HTML5制作一个简单的弹力球游戏
2015/05/12 HTML / CSS
老师自我鉴定范文
2013/12/25 职场文书
大学生职业生涯规划大赛作品(精品)
2014/09/17 职场文书
师德师风自查材料
2014/10/14 职场文书
工厂见习报告范文
2014/10/31 职场文书
歌舞青春观后感
2015/06/10 职场文书
于丹论语心得观后感
2015/06/15 职场文书