关于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常用函数(php下操作数据库必备)
Sep 12 PHP
PHP中使用CURL伪造来路抓取页面或文件
May 04 PHP
php数组函数序列之array_key_exists() - 查找数组键名是否存在
Oct 29 PHP
PHP实现把数字ID转字母ID
Aug 12 PHP
php针对cookie操作的队列操作类实例
Dec 10 PHP
php数组键名技巧小结
Feb 17 PHP
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
Oct 09 PHP
php实现的递归提成方案实例
Nov 14 PHP
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法
Dec 17 PHP
实例讲解php将字符串输出到HTML
Jan 27 PHP
PHP 计算两个时间段之间交集的天数示例
Oct 24 PHP
PHP 对象接口简单实现方法示例
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设计模式之命令模式的深入解析
2013/06/13 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
2014/02/18 PHP
浅析PHP编程中10个最常见的错误
2014/08/08 PHP
PHP管理依赖(dependency)关系工具 Composer的自动加载(autoload)
2014/08/18 PHP
PHP基于工厂模式实现的计算器实例
2015/07/16 PHP
Javascript Jquery 遍历Json的实现代码
2010/03/31 Javascript
面向对象的Javascript之三(封装和信息隐藏)
2012/01/27 Javascript
gridpanel动态加载数据的实例代码
2013/07/18 Javascript
文件上传插件SWFUpload的使用指南
2016/11/29 Javascript
JavaScript自定义浏览器滚动条兼容IE、 火狐和chrome
2017/01/05 Javascript
CSS3 动画卡顿性能优化的完美解决方案
2018/09/20 Javascript
Vue.js中该如何自己维护路由跳转记录
2019/05/19 Javascript
利用百度echarts实现图表功能简单入门示例【附源码下载】
2019/06/10 Javascript
javascript实现简易的计算器
2020/01/17 Javascript
Vue实现剪切板图片压缩功能
2020/02/04 Javascript
微信小程序国际化探索实现(附源码地址)
2020/05/20 Javascript
three.js显示中文字体与tween应用详析
2021/01/04 Javascript
[02:02]DOTA2英雄基础教程 斯拉达
2013/12/11 DOTA
[01:32]寻找你心中的那团火 DOTA2 TI9火焰传递活动今日开启
2019/05/16 DOTA
Python的函数的一些高阶特性
2015/04/27 Python
python中的set实现不重复的排序原理
2018/01/24 Python
python实现在遍历列表时,直接对dict元素增加字段的方法
2019/01/15 Python
对Python定时任务的启动和停止方法详解
2019/02/19 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
2019/07/08 Python
Python如何实现动态数组
2019/11/02 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
2020/04/14 Python
总结Pyinstaller的坑及终极解决方法(小结)
2020/09/21 Python
花园仓库建筑:Garden Buildings Direct
2018/02/16 全球购物
缓刑人员的思想汇报
2014/01/11 职场文书
煤矿安全生产月活动总结
2014/07/05 职场文书
2014机关干部学习“焦裕禄精神”思想汇报
2014/09/19 职场文书
公司向个人借款协议书范本
2014/10/09 职场文书
2016大学优秀学生干部事迹材料
2016/03/01 职场文书
请学会珍惜眼前,因为人生没有下辈子!
2019/11/12 职场文书
Spring Boot 实现敏感词及特殊字符过滤处理
2021/06/29 Java/Android
JavaScript选择器函数querySelector和querySelectorAll
2021/11/27 Javascript