所以我对nl2br有一些奇怪的问题,所以我有以下代码:
var infowindow = new google.maps.InfoWindow({
content: "<?= nl2br($store["Stores"]["address"]) ?>"
});查看浏览器源代码时的输出如下图所示:

正如您所看到的,<br />已经被正确引入,但是由于某些原因,该行仍然中断,这会导致javascript错误。
变量值是从表单的文本区域输入中发布的值
发布于 2011-07-08 02:43:20
从documentation中的示例中可以看到,这似乎是有意为之的行为。如果您想要替换所有换行符以将字符串放到一行中,一个简单的正则表达式就可以做到。这就是我会尝试的方法(从我的脑海中输入出来,这是没有测试的):
<?= preg_replace('/(\r\n|\n|\r)/','<br/>',$store["Stores"]["address"]) ?>发布于 2011-07-08 02:44:28
这是nl2br的预期行为。如果要删除字符串中的换行符,则必须使用preg_replace。
<?= preg_replace("/(\r\n|\n|\r)/", "<br />", $input)发布于 2011-07-08 02:41:59
nl2br不会删除换行符,它只在换行符前面插入< br />。
http://php.net/manual/en/function.nl2br.php
https://stackoverflow.com/questions/6615471
复制相似问题