11

私は多くの潜在的な解決策を試しましたが、どれもうまくいきません。最も単純なもの:

$file = file('list.html');
array_pop($file);

まったく何もしていません。ここで何か間違ったことをしていますか?htmlファイルだから違うの?

4

4 に答える 4

17

これはうまくいくはずです:

<?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); 

?>
于 2013-06-29T15:30:02.820 に答える
1

下から 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は、ファイルへのパスまたはファイル名にすることができます。

于 2017-06-12T02:06:26.580 に答える
0

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
于 2014-12-12T16:40:31.947 に答える
-2

ファイルを読み取るだけで、ファイルを書き込む必要があります

file_put_contentsなどを調べる

于 2013-06-29T15:29:53.773 に答える