关于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中数据的批量导入(csv文件)
Oct 09 PHP
PHP扩展编写点滴 技巧收集
Mar 09 PHP
phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
Mar 26 PHP
PHP 常用数组内部函数(Array Functions)介绍
Jun 05 PHP
php多用户读写文件冲突的解决办法
Nov 06 PHP
php获取bing每日壁纸示例分享
Feb 25 PHP
CI框架验证码CAPTCHA辅助函数用法实例
Nov 05 PHP
php实现的xml操作类
Jan 15 PHP
PHP编写的图片验证码类文件分享
Jun 06 PHP
php通过两层过滤获取留言内容的方法
Jul 11 PHP
手把手编写PHP框架 深入了解MVC运行流程
Sep 19 PHP
PHP读取XML格式文件的方法总结
Feb 27 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在线打包程序源码
2008/07/27 PHP
Uchome1.2 1.5 代码学习 common.php
2009/04/24 PHP
PHP中usort在值相同时改变原始位置问题的解决方法
2011/11/27 PHP
支持中文字母数字、自定义字体php验证码代码
2012/02/27 PHP
php函数指定默认值方法的小例子
2013/12/04 PHP
推荐一款MAC OS X 下php集成开发环境mamp
2014/11/08 PHP
ThinkPHP的常用配置选项汇总
2016/03/24 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
2018/06/09 PHP
关于laravel框架中的常用目录路径函数
2019/10/23 PHP
TNC vs RR BO3 第一场 2.14
2021/03/10 DOTA
Javascript this关键字使用分析
2008/10/21 Javascript
jQuery 表格插件整理
2010/04/27 Javascript
js文件Cookie存取值示例代码
2014/02/20 Javascript
jQuery基于ajax实现星星评论代码
2015/08/07 Javascript
jQuery实现动态添加、删除按钮及input输入框的方法
2017/04/27 jQuery
js下载文件并修改文件名
2017/05/08 Javascript
JS使用ActiveXObject实现用户提交表单时屏蔽敏感词功能
2017/06/20 Javascript
React-Native左右联动List的示例代码
2017/09/21 Javascript
node.js学习之事件模块Events的使用示例
2017/09/28 Javascript
vue.js或js实现中文A-Z排序的方法
2018/03/08 Javascript
关于Angularjs中跨域设置白名单问题
2018/04/17 Javascript
浅谈VueJS SSR 后端绘制内存泄漏的相关解决经验
2018/12/20 Javascript
js+html实现周岁年龄计算器
2019/06/25 Javascript
JSONP解决JS跨域问题的实现
2020/05/25 Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
2020/10/14 Javascript
[53:43]VP vs NewBee Supermajor 胜者组 BO3 第三场 6.5
2018/06/06 DOTA
python去掉字符串中重复字符的方法
2014/02/27 Python
python制作花瓣网美女图片爬虫
2015/10/28 Python
详解Python中is和==的区别
2019/03/21 Python
HTML5样式控制示例代码
2013/11/27 HTML / CSS
25道Java面试题集合
2013/05/21 面试题
青年创业培训欢迎词
2014/01/08 职场文书
房屋改造计划书
2014/01/10 职场文书
教师旷工检讨书
2015/08/15 职场文书
pytorch中Schedule与warmup_steps的用法说明
2021/05/24 Python
vue如何使用模拟的json数据查看效果
2022/03/31 Vue.js