我已經嘗試了很多潛在的解決方案,但他們都沒有爲我工作。 最簡單的一個:如何使用php刪除文件的最後一行?
$file = file('list.html');
array_pop($file);
根本沒有做任何事情。我在這裏做錯了什麼?它是不同的,因爲它是一個HTML文件?
我已經嘗試了很多潛在的解決方案,但他們都沒有爲我工作。 最簡單的一個:如何使用php刪除文件的最後一行?
$file = file('list.html');
array_pop($file);
根本沒有做任何事情。我在這裏做錯了什麼?它是不同的,因爲它是一個HTML文件?
這應該工作:
<?php
// load the data and delete the line from the array
$lines = file('filename.txt');
$last = sizeof($lines) - 1 ;
unset($lines[$last]);
// write the new data to the file
$fp = fopen('filename.txt', 'w');
fwrite($fp, implode('', $lines));
fclose($fp);
?>
您只能讀取文件,你現在需要寫入文件
對不起,我應該使用更多的細節。我在與我正在編寫代碼的計算機不同的計算機上詢問此問題,因此我沒有包括所有內容。我寫了文件,但它沒有做任何事情。 – jemtan990
刪除變量的第一和最後一行在PHP中:
使用phpsh交互式shell:
php> $test = "line one\nline two\nline three\nline four";
php> $test = substr($test, (strpos($test, "\n")+1));
php> $test = substr($test, 0, strrpos($test, "\n"));
php> print $test;
line two
line three
您可能意思是「最後一個非空白行」。在這種情況下,請執行以下操作:
請注意,內容後面有三個空行。這刪除最後刪除這些行之前:
php> $test = "line one\nline two\nline three\nline four\n\n\n";
php> $test = substr($test, 0, strrpos(trim($test), "\n"));
php> print $test;
line one
line two
line three
我創建了一個函數,從底部刪除x行數。將$max
設置爲要刪除的行數。
function trim_lines($path, $max) {
// Read the lines into an array
$lines = file($path);
// Setup counter for loop
$counter = 0;
while($counter < $max) {
// array_pop removes the last element from an array
array_pop($lines);
// Increment the counter
$counter++;
} // End loop
// Write the trimmed lines to the file
file_put_contents($path, implode('', $lines));
}
呼叫這樣的功能:
trim_lines("filename.txt", 1);
可變$path
可以是文件或一個文件名的路徑。
請提供一些詳細信息 –
您需要將$ file寫回到list.html中,以便實際更改存儲在磁盤上的文件 –
您是否想要刪除最後一行並將其保存回磁盤? – angelsl