nl2br 函数在换行后产生空格

nl2br function producing whitespace after newline

以下代码在每个换行符后产生一个空格,我不知道为什么。请帮助,如何在不添加空格的情况下实现相同的功能?

<?php

$test =  "Hello World\nHello World";
$test = preg_replace ( "/([^\s]{80}?)/" , "\1<br />" , trim ( nl2br ( strip_tags ( $test, '<br>' ) ) ) );
echo $test;`

?>

我做了测试,在使用 nl2br() 函数后我没有注意到任何空格。

$string =  "Hello World\nHello World";
$string = nl2br ($string);

输出

Hello World<br />\n
Hello World

值得注意的是这个函数保留了换行符。