关于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获取网页内容方法总结
Dec 04 PHP
php 动态添加记录
Mar 10 PHP
PHP 防恶意刷新实现代码
May 16 PHP
php下统计用户在线时间的一种尝试
Aug 26 PHP
PHP中break及continue两个流程控制指令区别分析
Apr 18 PHP
PHP数据类型的总结分析
Jun 13 PHP
PHP管理依赖(dependency)关系工具 Composer 安装与使用
Aug 18 PHP
PHP预定义变量9大超全局数组用法详解
Apr 23 PHP
php封装的mysqli类完整实例
Oct 18 PHP
PHP实现删除多重数组对象属性并重新赋值的方法
Jun 07 PHP
PHP7内核之Reference详解
Mar 14 PHP
关于laravel 子查询 &amp; join的使用
Oct 16 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 Smarty初体验二 获取配置信息
2011/08/08 PHP
PHP手机号码归属地查询代码(API接口/mysql)
2012/09/04 PHP
yii框架通过控制台命令创建定时任务示例
2014/04/30 PHP
php中convert_uuencode()与convert_uuencode函数用法实例
2014/11/22 PHP
PHP跨平台获取服务器IP地址自定义函数分享
2014/12/29 PHP
php 截取utf-8格式的字符串实例代码
2016/10/30 PHP
使用一个for循环将N*N的二维数组的所有值置1实现方法
2017/05/29 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
php给数组赋值的实例方法
2019/09/26 PHP
jQuery对象与DOM对象之间的转换方法
2010/04/15 Javascript
JavaScript window.document的属性、方法和事件小结
2012/10/24 Javascript
jQuery中width()方法用法实例
2014/12/24 Javascript
jquery结合CSS使用validate实现漂亮的验证
2015/01/29 Javascript
详解Vue2 无限级分类(添加,删除,修改)
2017/03/07 Javascript
详解nodejs微信公众号开发——6.自定义菜单
2017/04/13 NodeJs
js数字滑动时钟的简单实现(示例讲解)
2017/08/14 Javascript
从vue基础开始创建一个简单的增删改查的实例代码(推荐)
2018/02/11 Javascript
jQuery实现鼠标响应式淘宝动画效果示例
2018/02/13 jQuery
JS实现深度优先搜索求解两点间最短路径
2019/01/17 Javascript
vue 解决遍历对象显示的顺序不对问题
2019/11/07 Javascript
[58:25]VP vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
深入剖析Python的爬虫框架Scrapy的结构与运作流程
2016/01/20 Python
python爬虫获取小区经纬度以及结构化地址
2018/12/30 Python
Python中函数的基本定义与调用及内置函数详解
2019/05/13 Python
PYQT5设置textEdit自动滚屏的方法
2019/06/14 Python
详解python websocket获取实时数据的几种常见链接方式
2019/07/01 Python
基于matplotlib中ion()和ioff()的使用详解
2020/06/16 Python
Python HTMLTestRunner如何下载生成报告
2020/09/04 Python
Python 连接 MySQL 的几种方法
2020/09/09 Python
python tqdm实现进度条的示例代码
2020/11/10 Python
导游实习生自荐书
2014/01/28 职场文书
煤矿机修工岗位职责
2014/02/07 职场文书
六一儿童节演讲稿
2014/05/23 职场文书
离职报告格式
2014/11/04 职场文书
宿舍管理制度范本
2015/08/07 职场文书
传单、海报早OUT了,另类传单营销方案送给你!
2019/07/15 职场文书