PHP循环超过txt文件输出后删除行
我有一个php脚本,我在文本文件中的所有行上循环。如何在读取该行后删除该行,以便在脚本结束时将从文件中删除所有已输出的行PHP循环超过txt文件输出后删除行,php,Php,我有一个php脚本,我在文本文件中的所有行上循环。如何在读取该行后删除该行,以便在脚本结束时将从文件中删除所有已输出的行 $file = $dataDoc['file']; if(is_file($file)){ $contents = file($file); foreach($contents as $line) { echo $line . "\n"; // Delete line here and keep looping over t
$file = $dataDoc['file'];
if(is_file($file)){
$contents = file($file);
foreach($contents as $line) {
echo $line . "\n";
// Delete line here and keep looping over the rest of the lines...
}
}
从$contents数组中删除的文件中读取的每一行,然后在没有该行的情况下重写该文件。这不是很有效,但只是一种方法。简单的解决方案可以是:
$contents = file($file);
foreach($contents as &$line) { // add `&` to modify source line
echo $line . "\n";
if (/*Some case is true*/) {
$line = null; // unset a line if needed
}
}
// lines that are NULL will not be written to a file
$writeRes = file_put_contents($file, $contents);
你的意思是-从文件中删除行?是的,这就是我的意思问题是,这种开销有什么好处?这样,最后只需存储一个空文件。如果读取后删除是为了在发生错误时创建某种类型的备份以防止重复计算,那么这一点都没有帮助
$contents = file($file);
foreach($contents as &$line) { // add `&` to modify source line
echo $line . "\n";
if (/*Some case is true*/) {
$line = null; // unset a line if needed
}
}
// lines that are NULL will not be written to a file
$writeRes = file_put_contents($file, $contents);