2013-06-12 65 views
1

如何刪除除文本文件最後n行外的所有行?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行之外的所有行的代碼嗎?

+0

爲什麼你不能使用此代碼,但改變'for()'循環的條件? –

+0

>> file_put_contents(「./ home/userdata/log.ini」); <<哦這應該屬於false .. file_put_contents expect min 2 params – donald123

回答

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"); 
+0

謝謝:)它的工作 –

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)); 
相關問題