PHP脚本删除除最后n行之外的所有文件行

时间:2013-06-12 18:03:15

标签: php

如何删除除文本文件的最后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行之外的所有行的代码吗?

2 个答案:

答案 0 :(得分:2)

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

$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");

答案 1 :(得分: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));