繁体   English   中英

输出后PHP循环遍历txt文件删除行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM