关于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介绍篇
Oct 26 PHP
使用PHP计算两个路径的相对路径
Jun 14 PHP
php使用ICQ网关发送手机短信
Oct 30 PHP
PHP echo,print,printf,sprintf函数之间的区别与用法详解
Nov 27 PHP
php利用curl抓取新浪微博内容示例
Apr 27 PHP
Yii查询生成器(Query Builder)用法实例教程
Sep 04 PHP
QQ互联一键登录审核不通过的解决方案
Sep 10 PHP
php将图片保存入mysql数据库失败的解决方法
Dec 27 PHP
CI(CodeIgniter)框架实现图片上传的方法
Mar 24 PHP
PHP异步进程助手async-helper
Feb 05 PHP
PHP实现数组和对象的相互转换操作示例
Mar 20 PHP
TP5框架使用QueryList采集框架爬小说操作示例
Mar 26 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
yii操作session实例简介
2014/07/31 PHP
php基于Redis消息队列实现的消息推送的方法
2018/11/28 PHP
Ext.MessageBox工具类简介
2009/12/10 Javascript
jQuery中的.bind()、.live()和.delegate()之间区别分析
2011/06/08 Javascript
基于JQuery的Select选择框的华丽变身
2011/08/23 Javascript
在JavaScript中处理字符串之link()方法的使用
2015/06/08 Javascript
JS创建事件的三种方法(实例代码)
2016/05/12 Javascript
20分钟轻松创建自己的Bootstrap站点
2016/05/12 Javascript
Ubuntu系统下Angularjs开发环境安装
2016/09/01 Javascript
详解vue2.0脚手架的webpack 配置文件分析
2017/05/27 Javascript
Vue 项目部署到服务器的问题解决方法
2017/12/05 Javascript
Vue导出页面为PDF格式的实现思路
2018/07/31 Javascript
Vue实现table上下移动功能示例
2019/02/21 Javascript
JS变量提升及函数提升实例解析
2020/09/03 Javascript
超详细小程序定位地图模块全系列开发教学
2020/11/24 Javascript
微信小程序tab左右滑动切换功能的实现代码
2021/02/08 Javascript
[39:02]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs VGJ.T
2018/04/01 DOTA
Python多进程库multiprocessing中进程池Pool类的使用详解
2017/11/24 Python
Python实现的计数排序算法示例
2017/11/29 Python
Python pygorithm模块用法示例【常见算法测试】
2018/08/16 Python
python 通过麦克风录音 生成wav文件的方法
2019/01/09 Python
基于树莓派的语音对话机器人
2019/06/17 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
2020/12/29 Python
css3的图形3d翻转效果应用示例
2014/04/08 HTML / CSS
美国在线家具网站:GDFStudio
2021/03/13 全球购物
敏捷开发的主要原则都有哪些
2015/04/26 面试题
艺术系大学生毕业个人自我评价
2013/09/19 职场文书
大学生党课思想汇报
2013/12/29 职场文书
小学红领巾广播稿(3篇)
2014/09/13 职场文书
四风问题查摆剖析材料
2014/10/11 职场文书
优秀员工推荐材料
2014/12/20 职场文书
学校施工安全责任书
2015/01/29 职场文书
酒店工程部岗位职责
2015/02/12 职场文书
超市食品安全承诺书
2015/04/29 职场文书
《神奇的鸟岛》教学反思
2016/02/22 职场文书
springboot如何初始化执行sql语句
2021/06/22 Java/Android