我想用PHP实现从一个按行存储的文件中读取一条数据,读取完之后删除掉这行数据,这样我下次再读取的时候就能读取到第二条数据了,因为我是用CLI调用PHP,所以没法使用全局变量来保存计数,所以就想到读完之后删掉,这样就不用游标了 请问怎么实现呢if(!is_array($list))
{
$j=0;
$f= fopen("D:\\list2.txt","r");
$line = fgets($f);
//此处填写删除此行数据的代码
fclose($f);
}
{
$j=0;
$f= fopen("D:\\list2.txt","r");
$line = fgets($f);
//此处填写删除此行数据的代码
fclose($f);
}
小文件可以这样做,大的就不行。
$f= fopen($fn, "r");
$line = fgets($f);
ob_start();
fpassthru($f);
fclose($f);
file_put_contents($fn, ob_get_clean() );echo $line;
<?php
$f1=fopen('fff.txt','r');
$tmp=tempnam("/tmp",'');//建立临时文件
$f2=fopen($tmp,'w');
$i=0;
while(!feof($f1)){
$line=fgets($f1);
$i++;
if($i==1){
continue;
}
fputs($f2,$line);
}
fclose($f1);
fclose($f2);
rename($tmp,'fff.txt');
?>没有函数直接删除文件中的行,修改文件(删除、增加)标准的办法都是新建立文件,逐行进行拷贝,在拷贝中遇到需要修改的就进行修改