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