gpt4 book ai didi

PHP删除文本文件中的最后一个空行

转载 作者:行者123 更新时间:2023-12-02 00:37:25 25 4
gpt4 key购买 nike

我的文本文件有问题。我有一个空行的文本文件(最后一行总是空的)。我需要删除这一行。我尝试了几种方法。这是我目前删除空行的方法:

function RemoveEmptyLines($filename)
{
$myfile = fopen($filename, "r") or die("Unable to open file!");
$Content = fread($myfile,filesize($filename));
fclose($myfile);
$NewContent = preg_replace('/^\s+/m', '', $Content);
$myfile2 = fopen('new.txt', "w") or die("Unable to open file!");
fwrite($myfile2, $NewContent);
fclose($myfile2);
echo "removed";
}

这会删除文本文件中的所有空行,但不会删除最后一个空行。如果内容是:

1 \n 2 \n \n 3

它删除空行。如果是:

1 \n 2 \n 3 \n \n

它没有..任何解决方案?问题是,文件是动态的,所以我不能只删除最后一行,因为它并不总是空的..

最佳答案

获取内容,修剪尾部并放入内容:

file_put_contents($filename, rtrim(file_get_contents($filename));

或者,对于您现有的代码,您不想要 m (PCRE_MULTILINE) 并且您想要匹配字符串 $ 的结尾。我认为这种模式会起作用:

/\s+$/

这两种解决方案也会删除空格。如果你不想这样:

/[\n\r]+$/

如果你真的想删除所有空行,那么你可以将文件读入一个数组,忽略空行并将内容放回去:

file_put_contents($filename, file($filename, FILE_SKIP_EMPTY_LINES));

但是,如果您正在创建此文件,您可能希望查看该代码而不是首先添加换行符。

关于PHP删除文本文件中的最后一个空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48830244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com