[英]PHP Loop over txt file delete line after output
我有一个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 the rest of the lines...
}
}
$file = $dataDoc['file'];
if(is_file($file)){
$contents = file($file);
foreach($contents as $i => $line) {
echo $line . "\n";
unset($contents[$i]);
fopen($file, 'w');
fwrite(implode('\n', $contents));
fclose($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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.