私は多くの潜在的な解決策を試しましたが、どれもうまくいきません。最も単純なもの:
$file = file('list.html');
array_pop($file);
まったく何もしていません。ここで何か間違ったことをしていますか?htmlファイルだから違うの?
私は多くの潜在的な解決策を試しましたが、どれもうまくいきません。最も単純なもの:
$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);
?>
下から 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
は、ファイルへのパスまたはファイル名にすることができます。
PHP で変数の最初と最後の行を削除します。
phpsh インタラクティブ シェルの使用:
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
「最後の非空白行」を意味している可能性があります。その場合は次のようにします。
コンテンツの後に 3 つの空白行があることに注意してください。これにより、最後の行を削除する前にこれらの行が削除されます。
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
ファイルを読み取るだけで、ファイルを書き込む必要があります
file_put_contents
などを調べる