PHP 读取和修改大文件的某行内容的代码
$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写入是执行替换操作,而不是插入操作,所以指针后面的字符会一个个被替换掉。至于怎么插入我就没研究了。估计很困难。为了效率可能只能写入另外一个临时文件了,不知道有没有其他更好的方法。
$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读取csv文件内容的详解
一次性读取csv文件内所有行的数据 复制代码 代码如下: <?php $file = fopen('windows_2011_s.csv','r'); while ($data = fgetcsv($file)) { //每次读取CSV里面的一行内容//print_r($data); //此为一个数组,要获得每一个数据,访问数组下标即可$goods_list[] = $data; }//print_r($goods_list);/* foreach ($goods_list as $arr){
-
PHP读取网页文件内容的实现代码(fopen,curl等)
1.fopen实现代码: 复制代码 代码如下: <?php $handle = fopen ("http://www.example.com/", "rb"); $contents = ""; while (!feof($handle)) { $contents .= fread($handle, 8192); } fclose($handle); ?> 复制代码 代码如下: <?php // 对 PHP 5 及更高版本 $ha
-
PHP读取文件内容的五种方式
php读取文件内容的五种方式 分享下php读取文件内容的五种方法:好吧,写完后发现文件全部没有关闭.实际应用当中,请注意关闭 fclose($fp); -- php读取文件内容: -----第一种方法-----fread()-------- <?php $file_path = "test.txt"; if(file_exists($file_path)){ $fp = fopen($file_path,"r"); $str = fread($fp,files
-
PHP 读取文件内容代码(txt,js等)
<?php /* 作者:bjf; 应用:读取文件内容; */ function read_file_content($FileName) { //open file $fp=fopen($FileName,"r"); $data=""; while(!feof($fp)) { //read the file $data.=fread($fp,4096); } //close the file fclose($fp); //delete the file //u
-
PHP 读取大文件的X行到Y行内容的实现代码
需要读取一个文件的几行内容,但是文件比较大,所以研究了下php读取大文件的几行内容的方法,写了一个方法,代码如下(加了注释): 缓存文件如果能够保存在一行, 而利用算法读取指定的行数, 自然会比全部读出来挑选要快得多. 但php似乎这方面比较弱, 不太好操作. 就算使用SplFileObject仍然不是特别可取, 内存压力存在. 复制代码 代码如下: $fp->seek($startLine - 1); 经过测试, 此行代码在8MB文本中游走到最后一行, 内存占用为49KB, 还算不错. 换成f
-
PHP读取txt文件的内容并赋值给数组的代码
2010-12-15.txt的文件内容如下: 复制代码 代码如下: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 T01 T02 T03 T04 T05 T06 T07 T08 T09 T10 T11 T12 T13 T14 T15 T16 思路如下:使用file_get_contents()获取txt文件的内容,然后通过explode()把获得的字符串转化为数组.获得数组长度可以使用count()
-
php读取文件内容的方法汇总
本文实例汇总了php读取文件内容的方法.分享给大家供大家参考.具体如下: 这里汇总php读取文件内容的五种方法.实际应用当中,请注意关闭 fclose($fp); 第一种方法:fread() 复制代码 代码如下: <?php $file_path = "test.txt"; if(file_exists($file_path)){ $fp = fopen($file_path,"r"); $str = fread($fp,filesize($file_pa
-
php读取文件内容到数组的方法
本文实例讲述了php读取文件内容到数组的方法.分享给大家供大家参考.具体分析如下: php中可以通过file()函数将文件读取到数组中,数组中的元素即为文件的每行,file()函数通过"\n"按行分割文件保存到数组,所以数组每个元素都是以"\n"结尾,我们可以通过 rtrim()函数将其去除 <?php $lines = file("/tmp/file.txt"); foreach ($lines as $line) { $line = r
-
PHP读取文件内容后清空文件示例代码
复制代码 代码如下: $fh = fopen($path, "r+"); if( flock($fh, LOCK_EX) ){//加写锁 $old_content=json_decode(fread($fh,filesize($path)),true); $old_content=$old_content.$new_content; ftruncate($fh,0); // 将文件截断到给定的长度 rewind($fh); // 倒回文件指针的位置 fwrite($fh,json_en
-
php读取文件内容的几种方法详解
示例代码1: 用file_get_contents 以get方式获取内容 复制代码 代码如下: <?php$url='http://www.baidu.com/';$html=file_get_contents($url);//print_r($http_response_header);ec($html);printhr();printarr($http_response_header);printhr();?> 示例代码2: 用fopen打开url, 以get方式获取内容 复制代码 代码如
-
php读取文件内容至字符串中,同时去除换行、空行、行首行尾空格(Zjmainstay原创)
复制代码 代码如下: <?php /* *读取文件内容至字符串中,同时去除换行.行首行尾空格. */ header("Content-type: text/html; charset=utf-8"); echo preg_replace('/((\s)*(\n)+(\s)*)/i',',',file_get_contents('./file.php'));//End_php //输出: aaaa,bbbb,cccc,dddd,eeee,ffff,gggg,hhhh,iiii,jj
随机推荐
- JavaScript简单实现弹出拖拽窗口(一)
- 如果你有这33种症状了请离开电脑去走走吧!
- DOS命令全集(一)
- Java设计模式之观察者模式(Observer模式)介绍
- iOS 原生实现扫描二维码和条形码功能限制扫描区域
- 仿iOS图标抖动
- 基于Asp.net与Javascript控制的日期控件
- php 数组二分法查找函数代码
- python实现排序算法
- JAVA遍历一个文件夹中的所有文件的小例子
- 讲解Java设计模式编程中的建造者模式与原型模式
- Spring的事务机制实例代码
- 一文了解Python并发编程的工程实现方法
- kotlin实现通知栏提醒功能示例代码
- 简单了解Spring Bean常用注解的装配
- 在CMD命令行中运行python脚本的方法
- Mybatis延迟加载的实现方式
- 输出的文本实现对齐的方法(超简单)
- MySql COALESCE函数使用方法代码案例
- Vue实现鼠标经过文字显示悬浮框效果的示例代码