【问题标题】:Remove blank lines from txt file keeping carriage returns从保留回车的txt文件中删除空白行
【发布时间】:2017-04-19 21:58:39
【问题描述】:

我担心这个问题不会太受欢迎并且可能会被否决,但我已经在这个网站(以及其他网站)中进行了搜索和搜索,但我找不到解决方案。

我有一个文本文件,内容如下:

我需要删除空行,但保留现有的回车,如下所示:

我正在使用的代码:

if ($file = fopen("file.txt", "r")) {
    while(!feof($file)) {
        $line = fgets($file);
        echo str_replace("\r\n","",$line)
    }
    fclose($file);
}

如上所述,我曾尝试使用 str_replace、preg_replace 和 \r\n 或 \n\n 等函数作为要替换的字符,但使用所有这些函数我都得到了以下结果:

根据需要删除空行,但也删除回车,这在我的情况下是不允许的。

所以我想知道是否有人可以建议一种方法来实现我的目标:) 谢谢。

【问题讨论】:

标签: php blank-line


【解决方案1】:

替换肯定有重复,但只需读入数组并跳过空行:

$lines = file("file.txt", FILE_SKIP_EMPTY_LINES):

然后将数组循环到echo 行或implode() 以将其重新转换为字符串。

【讨论】:

    【解决方案2】:

    @Abracadaver @nogad @GCRdev

    我一直在尝试您的方法,但对我不起作用。我终于找到了一种方法(感谢https://stackoverflow.com/a/20719126),如果它对某人有用,我就把它放在这里:

    $file = fopen("file.txt","r");
    while($line = fgets($file)){
    
        $tempData = nl2br($line);
        $tempData = explode("<br />",$tempData);
    
        foreach ($tempData as $val) {
           if(trim($val) != '')
           {
              echo $val."<br />";
           }
        }
    }
    fclose($file);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-11
      • 1970-01-01
      • 2014-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-29
      相关资源
      最近更新 更多