我尝试了很多潜在的解决方案,但没有一个能为我工作。 最简单的一个:
$file = file('list.html');
array_pop($file);
根本没有做任何事情。我在这里做错了吗?它是不同的,因为它是一个html文件?
答案 0 :(得分:10)
这应该有效:
<?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);
?>
答案 1 :(得分: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
答案 2 :(得分:0)
我创建了一个从底部删除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
可以是文件的路径或文件名。
答案 3 :(得分:-2)
您只是在阅读文件,现在需要编写文件