如何使用nl2br删除和添加换行符


How to use nl2br to remove and add breaks

我在让nl2br执行我想要的操作时遇到了一些问题。

有人能解释一下为什么nl2br没有在我的PHP中将JSON数据中的'n更改为< br />吗?

这是代码:

$page = file_get_contents('JSON_FEED_URL');
$page2 = nl2br($page);

当我回显$page2并查看HTML页面时,它显示为一堵巨大的文本墙。

尝试

$page = file_get_contents('JSON_FEED_URL');
$page2 = preg_replace("/''n/m", "<br />", $page);  

如前所述,str_replace的工作速度也会稍快,但以上是多行中断的计数。

nl2br不替换新行,只广告<br>标签。在HTML中,不需要删除换行符,因为它们被认为是空白,折叠成一个单独的空间来显示。这一事实正是具有<br>标签

因为您说在回显时可以看到'n s(而不是源中的换行符),这可能意味着您的'n s是文字,而不是"正确的"换行符。这是因为JSON是作为字符串读取的。通过调用json_decode(); 修复此问题

$page2 = nl2br(json_decode($page));

说明:
字符串

line1
line2

以JSON形式保存为

"line1'nline2"

'n不是真正的换行符,只是普通字符。通过解码JSON,它将是正确的。

nl2br没有在HTML中解释'n<br />,因为它们是后面跟着n的文字斜杠。

在您的源代码上,文本如下所示:

 FRIDAY THROUGH WEDNESDAY.'n'nMORE RAIN IS

应该是类似于ff的东西,以便对其进行解释:

 FRIDAY THROUGH WEDNESDAY.
 MORE RAIN IS

您可以使用str_replace()来解决您的问题,或者如果您可以在将内容放入"JSON_FEED_URL"时更新代码,请在放入这些内容之前添加nl2br