目前我可以使用php从文本文件中删除特定行。但是,删除该行后,将留下一个空行。 反正我有没有删除那条空行,以便后面的行可以向上移动? 谢谢你的帮助。
答案 0 :(得分:3)
$DELETE = "the_line_you_want_to_delete";
$data = file("./foo.txt");
$out = array();
foreach($data as $line) {
if(trim($line) != $DELETE) {
$out[] = $line;
}
}
$fp = fopen("./foo.txt", "w+");
flock($fp, LOCK_EX);
foreach($out as $line) {
fwrite($fp, $line);
}
flock($fp, LOCK_UN);
fclose($fp);
这将只查看每一行,如果不是你要删除的内容,它将被推送到一个将被写回文件的数组。
答案 1 :(得分:1)
真的?我发现这个更容易,只有一行代码:
file_put_contents($filename, str_replace($line . "\r\n", "", file_get_contents($filename)));
答案 2 :(得分:0)
您可以通过设置预测错误的条件来改善这一点。
<?PHP
$file = "a.txt";
$line = 3-1;
$array = file($file);
unset($array[$line]);
$fp = fopen($file, 'w+');
foreach($array as $line)
fwrite($fp,$line);
fclose($fp);
?>