PHP 如何从TXT文件中删除指定的一行?
一个TXT文件中包含以下内容user1user2user3如果我想删除user2txt文件最后变成user1user3应该怎么做?思路是不是用另一个txt存放剩下的值然后...
一个TXT文件中包含以下内容
user1
user2
user3
如果我想删除user2 txt文件最后变成
user1
user3
应该怎么做? 思路是不是用另一个txt存放剩下的值然后再写入原文件覆盖?
因为好象没有函数可以直接用来删除的
改个地方 txt文件是
user1:password1
user2:password2
user3:password3
结果是
user1:password1
user3:password3
删除user2要求只需要提供user2就行不需要提供密码 谢谢 展开
user1
user2
user3
如果我想删除user2 txt文件最后变成
user1
user3
应该怎么做? 思路是不是用另一个txt存放剩下的值然后再写入原文件覆盖?
因为好象没有函数可以直接用来删除的
改个地方 txt文件是
user1:password1
user2:password2
user3:password3
结果是
user1:password1
user3:password3
删除user2要求只需要提供user2就行不需要提供密码 谢谢 展开
2个回答
展开全部
是的,没有函数直接删除文件中的行,修改文件(删除、增加)标准的办法都是新建立文件,逐行进行拷贝,在拷贝中遇到需要修改的就进行修改,那么满足你的功能的标准代码是:
删除第二行:
$f1=fopen('fff.txt','r');
$tmp=tempnam();//建立临时文件
$f2=fopen($tmp,'w');
$line_no=1;//行号
while(!feof($f1)){
$line=fgets($f1);
if ($line_no!=2) fputs($f2,$line);
$line_no++;
}
fclose($f1);
fclose($f2);
rename($tmp,'fff.txt');
删除内容为“user2”的行:
$f1=fopen('fff.txt','r');
$tmp=tempnam();//建立临时文件
$f2=fopen($tmp,'w');
while(!feof($f1)){
$line=fgets($f1);
if ($line!='user2') fputs($f2,$line);
}
fclose($f1);
fclose($f2);
rename($tmp,'fff.txt');
补充:这点举一反三都做不到呀,如果是我的学生我不会来做这个补充的~
$f1=fopen('fff.txt','r');
$tmp=tempnam();//建立临时文件
$f2=fopen($tmp,'w');
while(!feof($f1)){
$line=fgets($f1);
list($u,$p)=explode(':',$line);
if ($u!='user2') fputs($f2,$line);
}
fclose($f1);
fclose($f2);
rename($tmp,'fff.txt');
删除第二行:
$f1=fopen('fff.txt','r');
$tmp=tempnam();//建立临时文件
$f2=fopen($tmp,'w');
$line_no=1;//行号
while(!feof($f1)){
$line=fgets($f1);
if ($line_no!=2) fputs($f2,$line);
$line_no++;
}
fclose($f1);
fclose($f2);
rename($tmp,'fff.txt');
删除内容为“user2”的行:
$f1=fopen('fff.txt','r');
$tmp=tempnam();//建立临时文件
$f2=fopen($tmp,'w');
while(!feof($f1)){
$line=fgets($f1);
if ($line!='user2') fputs($f2,$line);
}
fclose($f1);
fclose($f2);
rename($tmp,'fff.txt');
补充:这点举一反三都做不到呀,如果是我的学生我不会来做这个补充的~
$f1=fopen('fff.txt','r');
$tmp=tempnam();//建立临时文件
$f2=fopen($tmp,'w');
while(!feof($f1)){
$line=fgets($f1);
list($u,$p)=explode(':',$line);
if ($u!='user2') fputs($f2,$line);
}
fclose($f1);
fclose($f2);
rename($tmp,'fff.txt');
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询