我在让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
。