1

如何删除文本文件的最后 n 行以外的所有行?

除了最后两行之外,我应该使用什么代码来删除其他行?我有一个与这个相反的脚本:

$lines_array = file("./home/userdata/log.ini");
$new_output = "";
for ($i=0; $i<5; $i++){
$new_output .= $lines_array[$i];
}
file_put_contents("./home/userdata/log.ini");

此代码将删除除前 5 行之外的所有行。

你能改进上面的代码并编写将删除除最后 5 行之外的所有行的代码吗?

4

2 回答 2

3

只需获取行数,并使用它来了解最后两行的行号:

$lines_array = file("./home/userdata/log.ini");
$lines = count($lines_array); 
$new_output = "";
for ($i=$lines-2; $i<$lines; $i++){
$new_output .= $lines_array[$i];
}
file_put_contents("./home/userdata/log.ini");
于 2013-06-12T18:06:44.410 回答
0

你可以做类似的事情

$lines_array = file("./home/userdata/log.ini");
$new_output = array();
$new_output[] = array_pop($lines_array);
$new_output[] = array_pop($lines_array);
$new_output = array_reverse($new_output);
file_put_contents("./home/userdata/log.ini", implode("", $new_output));
于 2013-06-12T18:12:45.773 回答