关于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模拟asp中的XmlHttpRequest实现http请求的代码
Mar 24 PHP
php 获取百度的热词数据的代码
Feb 18 PHP
php实现telnet功能示例
Apr 08 PHP
php中使用key,value,current,next和prev函数遍历数组的方法
Mar 17 PHP
php抓取并保存网站图片的实现代码
Oct 28 PHP
php str_getcsv把字符串解析为数组的实现方法
Apr 05 PHP
PHP清除缓存的几种方法总结
Sep 12 PHP
LNMP部署laravel以及xhprof安装使用教程
Sep 14 PHP
ThinkPHP3.2.3框架Memcache缓存使用方法实例总结
Apr 15 PHP
PHP中PCRE正则解析代码详解
Apr 26 PHP
PHP实现通过二维数组键值获取一维键名操作示例
Oct 11 PHP
PHP基本语法
Mar 31 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读写音频文件信息的详解(支持WMA和MP3)
2013/05/10 PHP
Yii编程开发常见调用技巧集锦
2016/07/15 PHP
php 实现银联商务H5支付的示例代码
2019/10/12 PHP
PHP 枚举类型的管理与设计知识点总结
2020/02/13 PHP
javascript学习笔记(六) Date 日期类型
2012/06/19 Javascript
Jquery 模板数据绑定插件的使用方法详解
2013/07/08 Javascript
JS的Document属性和方法小结
2013/09/17 Javascript
使用jquery.form.js实现图片上传的方法
2016/05/05 Javascript
JavaScript实现简单的星星评分效果
2017/05/18 Javascript
利用express启动一个server服务的方法
2017/09/17 Javascript
Popup弹出框添加数据实现方法
2017/10/27 Javascript
three.js实现3D影院的原理的代码分析
2017/12/18 Javascript
vue+elementUI 实现内容区域高度自适应的示例
2020/09/26 Javascript
[01:41]DOTA2 2015国际邀请赛中国区预选赛第三日战报
2015/05/28 DOTA
[01:15:15]VG VS EG Supermajor小组赛B组胜者组第一轮 BO3第二场 6.2
2018/06/03 DOTA
[00:57]英雄,你的补给到了!
2020/11/13 DOTA
Python基于pygame实现的font游戏字体(附源码)
2015/11/11 Python
Python requests模块实例用法
2019/02/11 Python
python3安装OCR识别库tesserocr过程图解
2020/04/02 Python
VSCode配合pipenv搞定虚拟环境的实现方法
2020/05/17 Python
Python实现自动签到脚本功能
2020/08/20 Python
Manjaro、pip、conda更换国内源的方法
2020/11/17 Python
python实现图像随机裁剪的示例代码
2020/12/10 Python
CSS3中使用RGBA设置透明度的示例
2015/08/04 HTML / CSS
新西兰网上购物,折扣店:BestDeals.co.nz
2019/03/20 全球购物
MUGLER官方网站:蒂埃里·穆勒香水
2019/11/26 全球购物
医院检讨书范文
2014/02/01 职场文书
三年级评语大全
2014/04/23 职场文书
中国梦我的梦演讲稿
2014/04/23 职场文书
电力安全教育培训心得体会
2016/01/11 职场文书
公务员廉洁从政心得体会
2016/01/19 职场文书
2016会计专业自荐信范文
2016/01/28 职场文书
智慧人生:永远不需要向任何人解释你自己
2019/08/20 职场文书
餐饮行业关注的9大营销策略
2019/08/26 职场文书
python函数的两种嵌套方法使用
2022/04/02 Python
flex布局中使用flex-wrap实现换行的项目实践
2022/06/21 HTML / CSS