PHP 读取和修改大文件的某行内容的代码


Posted in PHP onOctober 30, 2009
$fp = fopen('d:/file.txt', 'r+'); 
if ($fp) { 
$i = 1; 
while (!feof($fp)) { 
//修改第二行数据 
if ($i == 2) { 
fseek($fp, 2, SEEK_CUR); 
fwrite($fp, '#'); 
break; 
} 
fgets($fp); 
$i++; 
} 
fclose($fp); 
}

这里需要注意的是fgets获取到一行后,文件指针指向行尾(也就是下一行开头),所以fwrite操作的是fgets后的下一行开头,至于从该行的第几个字符开始写,可以使用fseek函数来移动文件指针。另外一个需要注意的是,这里fwrite写入是执行替换操作,而不是插入操作,所以指针后面的字符会一个个被替换掉。至于怎么插入我就没研究了。估计很困难。为了效率可能只能写入另外一个临时文件了,不知道有没有其他更好的方法。

另外今天还看到了使用SPL进行操作的方法:

$fp = new SplFileObject('d:/file.txt', 'r+'); 
//转到第二行, seek方法参数从0开始计数, 经我测试指针指向行尾了, 所以修改的是第三行 
$fp->seek(1); 
//获取当前行内容(第二行) 
$line = $fp->current(); 
//下面是对第三行的操作 
$fp->fseek(2, SEEK_CUR); 
$fp->fwrite('#');

SplFileObject提供的方法比基本的文件操作函数更丰富一些,包括采用key/value方法遍历文件行等。SPL应该是PHP5增加进去的吧,还有其他很多很有用的对象。包括数组、文件目录操作、异常处理、一些基本类型操作等,这些功能还在陆续增加,可以通过继承SPL扩展这些方法让我们处理底层的操作更方便。

PHP 相关文章推荐
让你的WINDOWS同时支持MYSQL4,MYSQL4.1,MYSQL5X
Dec 06 PHP
PHP多线程抓取网页实现代码
Jul 22 PHP
基于PHP magic_quotes_gpc的使用方法详解
Jun 24 PHP
thinkphp的c方法使用示例
Feb 24 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
May 22 PHP
PHP上传Excel文件导入数据到MySQL数据库示例
Oct 25 PHP
php遍历、读取文件夹中图片并分页显示图片的方法
Nov 15 PHP
详解PHP用substr函数截取字符串中的某部分
Dec 03 PHP
php基于dom实现的图书xml格式数据示例
Feb 03 PHP
用PHP做了一个领取优惠券活动的示例代码
Jul 05 PHP
php进行md5加密简单实例方法
Sep 19 PHP
PHP实现一个按钮点击上传多个图片操作示例
Jan 23 PHP
PHP 批量删除数据的方法分析
Oct 30 #PHP
ThinkPHP php 框架学习笔记
Oct 30 #PHP
php pack与unpack 摸板字符字符含义
Oct 29 #PHP
php 显示指定路径下的图片
Oct 29 #PHP
dedecms 批量提取第一张图片最为缩略图的代码(文章+软件)
Oct 29 #PHP
PHP 简单日历实现代码
Oct 28 #PHP
php 网页游戏开发入门教程一(webgame+design)
Oct 26 #PHP
You might like
PHP使用正则表达式清除超链接文本
2013/11/12 PHP
PHP批量检测并去除文件BOM头代码实例
2014/05/08 PHP
Linux下安装oracle客户端并配置php5.3
2014/10/12 PHP
使用PHP实现微信摇一摇周边红包
2016/01/04 PHP
php面向对象的用户登录身份验证
2017/06/08 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
Thinkphp 框架扩展之类库扩展操作详解
2020/04/23 PHP
编写兼容IE和FireFox的脚本
2009/05/18 Javascript
javascript attachEvent绑定多个事件执行顺序问题
2010/10/20 Javascript
JavaScript bold方法入门实例(把指定文字显示为粗体)
2014/10/17 Javascript
使用jquery+CSS实现控制打印样式
2014/12/31 Javascript
JS使用setInterval实现的简单计时器功能示例
2018/04/19 Javascript
使用jquery DataTable和ajax向页面显示数据列表的方法
2018/08/09 jQuery
[02:14]2016国际邀请赛中国区预选赛Ehome晋级之路
2016/07/01 DOTA
python中的编码知识整理汇总
2016/01/26 Python
python抓取网页中链接的静态图片
2018/01/29 Python
python使用opencv按一定间隔截取视频帧
2018/03/06 Python
详解基于django实现的webssh简单例子
2018/07/17 Python
Python PIL读取的图像发生自动旋转的实现方法
2019/07/05 Python
通过celery异步处理一个查询任务的完整代码
2019/11/19 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
2020/06/02 Python
用python计算文件的MD5值
2020/12/23 Python
怎样创建、运行java程序
2014/08/01 面试题
仪器仪表检测毕业生自荐信
2013/10/31 职场文书
优秀求职信范文分享
2013/12/19 职场文书
外语系大学生自荐信范文
2014/03/01 职场文书
诉前财产保全担保书
2014/05/20 职场文书
五四青年节活动总结
2015/02/10 职场文书
地道战观后感500字
2015/06/04 职场文书
鸦片战争观后感
2015/06/09 职场文书
2016廉洁从业学习心得体会
2016/01/19 职场文书
2019年圣诞节祝福语集锦
2019/12/25 职场文书
Python字符串的转义字符
2022/04/07 Python
Python四款GUI图形界面库介绍
2022/06/05 Python
Redis实现短信验证码登录的示例代码
2022/06/14 Redis
教你win10系统中APPCRASH事件问题解决方法
2022/07/15 数码科技