【发布时间】:2017-05-18 19:45:11
【问题描述】:
我已经习惯了 PHP,并尝试从文件中删除一行(如果存在)并重新保存文件。
如果我有文件
user1
user2
user3
user4
我可以使用
if(existsAndRemove("user3")){
do thing
}
我尝试使用类似于以下代码的代码,但它有时会出错,并且只会删除文件中最后一行的行。我不知道如何解决这个问题。
$data2 = file("./ats.txt");
$out2 = array();
foreach($data2 as $line2) {
if(trim($line2) != $acc) {
$out2[] = $line2;
}
}
$fp2 = fopen("./ats.txt", "w+");
flock($fp2, LOCK_EX);
foreach($out2 as $line2) {
fwrite($fp2, $line2);
}
flock($fp2, LOCK_UN);
fclose($fp2);
}
}
任何帮助都将不胜感激,如果您也能解释代码,我也将不胜感激,这样我就可以更容易地从中学习!! 谢谢。
【问题讨论】:
-
覆盖打开的文件还是另存为新文件?
-
看起来你还没有定义
$acc即$acc = "user3"; -
@Arbels 覆盖文件,抱歉。
-
@cmorrissey 它已经在上面定义了我只是没有包含它