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 交互式 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
于 2014-12-12T16:40:31.947 回答
-2

You are only reading the file, you now need to write the file

Look into file_put_contents etc

于 2013-06-29T15:29:53.773 回答