关于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 中的str_replace 函数总结
Apr 27 PHP
PHP foreach循环使用详解与实例代码
May 08 PHP
php中如何同时使用session和cookie来保存用户登录信息
Jul 05 PHP
PHP curl 抓取AJAX异步内容示例
Sep 09 PHP
正确的PHP匹配UTF-8中文的正则表达式
May 13 PHP
Symfony2学习笔记之模板用法详解
Mar 17 PHP
php实现等比例不失真缩放上传图片的方法
Nov 14 PHP
php7 安装yar 生成docker镜像
May 09 PHP
PHP编程实现脚本异步执行的方法
Aug 09 PHP
ThinkPHP5&amp;5.1框架关联模型分页操作示例
Aug 03 PHP
6个常见的 PHP 安全性攻击实例和阻止方法
Dec 16 PHP
ThinkPHP6.0如何利用自定义验证规则规范的实现登陆
Dec 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
用DBSQL类加快开发MySQL数据库程序的速度
2006/10/09 PHP
php中字符集转换iconv函数使用总结
2014/10/11 PHP
php+mysqli批量查询多张表数据的方法
2015/01/29 PHP
php保存信息到当前Session的方法
2015/03/16 PHP
深入理解Javascript动态方法调用与参数修改的问题
2013/12/10 Javascript
jquery序列化form表单使用ajax提交后处理返回的json数据
2014/03/03 Javascript
javascript中的return和闭包函数浅析
2014/06/06 Javascript
JavaScript利用正则表达式去除日期中的-
2014/06/09 Javascript
jquery操作HTML5 的data-*的用法实例分享
2014/08/17 Javascript
JavaScript学习笔记之Function对象
2015/01/22 Javascript
JavaScript显示表单内元素数量的方法
2015/04/02 Javascript
js实现发送验证码后的倒计时功能
2015/05/28 Javascript
jQuery编程中的一些核心方法简介
2015/08/14 Javascript
JS与jQuery遍历Table所有单元格内容的方法
2015/12/07 Javascript
jQuery进行组件开发完整实例
2015/12/15 Javascript
详解Bootstrap按钮
2016/01/04 Javascript
angular2中router路由跳转navigate的使用与刷新页面问题详解
2017/05/07 Javascript
基于jQuery的表单填充实例
2017/08/22 jQuery
Popup弹出框添加数据实现方法
2017/10/27 Javascript
js实现购物车功能
2018/06/12 Javascript
微信小程序模拟cookie的实现
2018/06/20 Javascript
JS数组方法reverse()用法实例分析
2020/01/18 Javascript
vue 实现tab切换保持数据状态
2020/07/21 Javascript
Ant Design Pro 之 ProTable使用操作
2020/10/31 Javascript
vue项目中企业微信使用js-sdk时config和agentConfig配置方式详解
2020/12/15 Vue.js
python截取两个单词之间的内容方法
2018/12/25 Python
pycharm无法导入本地模块的解决方式
2020/02/12 Python
django xadmin中form_layout添加字段显示方式
2020/03/30 Python
解决python 执行sql语句时所传参数含有单引号的问题
2020/06/06 Python
翻新二手苹果产品的网络领导者:Mac of all Trades
2017/12/19 全球购物
Lookfantastic台湾:英国彩妆美发保养购物网
2018/03/26 全球购物
Allen Edmonds官方网站:一家美国优质男士鞋类及配饰制造商
2019/03/12 全球购物
预订旅游活动、景点和旅游:GetYourGuide
2019/09/29 全球购物
大学竞选班长演讲稿
2014/04/24 职场文书
2014年国庆节庆祝建国65周年比赛演讲稿
2014/09/21 职场文书
2015年公共机构节能宣传周活动总结
2015/03/26 职场文书