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 相关文章推荐
一个可查询所有表的“通用”查询分页类
Oct 09 PHP
初探PHP5
Oct 09 PHP
一个php作的文本留言本的例子(六)
Oct 09 PHP
PHP 网络开发详解之远程文件包含漏洞
Apr 25 PHP
php的chr和ord函数实现字符加减乘除运算实现代码
Dec 05 PHP
探讨php define()函数及defined()函数使用详解
Jun 09 PHP
php实现zip压缩文件解压缩代码分享(简单易懂)
May 10 PHP
PHP实现算式验证码和汉字验证码实例
Mar 09 PHP
php编写简单的文章发布程序
Jun 18 PHP
PHP模板引擎Smarty自定义变量调解器用法
Apr 11 PHP
PHP删除数组中指定下标的元素方法
Feb 03 PHP
Thinkphp5框架简单实现钩子(Hook)行为的方法示例
Sep 03 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时间不正确的解决方法
2008/04/09 PHP
PHP扩展模块memcached长连接使用方法分析
2014/12/24 PHP
php根据指定位置和长度获得子字符串的方法
2015/03/17 PHP
php比较两个字符串长度的方法
2015/07/13 PHP
简单谈谈PHP vs Node.js
2015/07/17 PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
2016/03/18 PHP
php使用crypt()函数进行加密
2017/06/08 PHP
用JavaScript将从数据库中读取出来的日期型格式化为想要的类型。
2009/08/15 Javascript
JavaScript XML和string相互转化实现代码
2011/07/04 Javascript
JavaScript验证图片类型(扩展名)的函数分享
2014/05/05 Javascript
javascript实现简单的页面右下角提示信息框
2015/07/31 Javascript
jQuery控制控件文本的长度的操作方法
2016/12/05 Javascript
详解JS异步加载的三种方式
2017/03/07 Javascript
JS异步文件上传(兼容IE8+)
2017/04/02 Javascript
解决js相同的正则多次调用test()返回的值却不同的问题
2018/10/10 Javascript
小程序登录态管理的方法示例
2018/11/13 Javascript
微信小程序实现原生步骤条
2019/07/25 Javascript
为Python的Tornado框架配置使用Jinja2模板引擎的方法
2016/06/30 Python
Python类属性的延迟计算
2016/10/22 Python
Python中工作日类库Busines Holiday的介绍与使用
2017/07/06 Python
python 中的int()函数怎么用
2017/10/17 Python
利用pandas读取中文数据集的方法
2018/07/25 Python
Python清空文件并替换内容的实例
2018/10/22 Python
python利用requests库模拟post请求时json的使用教程
2018/12/07 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
2019/11/19 Python
python实现处理mysql结果输出方式
2020/04/09 Python
构建高效的python requests长连接池详解
2020/05/02 Python
class类在python中获取金融数据的实例方法
2020/12/10 Python
盖尔斯工厂店:GUESS Factory
2020/01/21 全球购物
爱心捐款倡议书范文
2014/05/12 职场文书
2014年保洁工作总结
2014/11/24 职场文书
解除同居协议书
2015/01/29 职场文书
高中生个性发展自我评价
2015/03/09 职场文书
客服专员岗位职责范本
2015/04/07 职场文书
公司车辆维修管理制度
2015/08/05 职场文书
JS实现简单九宫格抽奖
2022/06/28 Javascript