Php JavaScript和包含\r和/或\n字符的字符串数组

Php JavaScript和包含\r和/或\n字符的字符串数组,php,javascript,arrays,newline,carriage-return,Php,Javascript,Arrays,Newline,Carriage Return,我有一个从数据库动态生成的数组。基本上,它是一个对象数组,PHP将其打印到本节中的页面 最终输出如下所示: var arPersons=[{'name':'aaa',description:'300px宽div中的2-3行文本'},{etc}] 现在,当从CMS写入的描述文本中出现换行字符(\n)或回车字符(\r)时,此数组似乎有问题 我怎样才能解决这个问题? 我现在做的是str\u替换(数组(“\r\n”、“\r”、“\n”)、“,$description”),其中循环中每个元素的$descr

我有一个从数据库动态生成的数组。基本上,它是一个对象数组,PHP将其打印到本节中的页面

最终输出如下所示:
var arPersons=[{'name':'aaa',description:'300px宽div中的2-3行文本'},{etc}]

现在,当从CMS写入的描述文本中出现换行字符(
\n
)或回车字符(
\r
)时,此数组似乎有问题

我怎样才能解决这个问题? 我现在做的是
str\u替换(数组(“\r\n”、“\r”、“\n”)、“,$description”),其中循环中每个元素的$description都会更改

我不确定这是最好的办法。有没有一种方法可以告诉JS代码,当存在\n和\r字符时,不要搞砸?还是应该用PHP而不是JS来完成吗

编辑: 我指的是数组停止执行后的任何代码。如果我完全删除描述或仅删除\n和\r字符,它将起作用(在这两种情况下)


谢谢。

最好的方法是从一开始就使用
json\u encode()
。它完全转义了输出到Javascript的所有内容


PHP有一个nl2br()函数,该函数将换行符转换为字符串,并将其转换为

s。如果您想保留格式,可以运行字符串。nl2br的低于标准的文档是

你说的“一团糟”到底是什么意思?出了什么问题?换行符或回车符本身并没有违法或不当之处。它会破坏该部分之后的任何JS代码。如果我删除新行字符,它就会工作。如果这有什么不同的话,我也在页面上使用jQuery。OP希望输出到Javascript<代码>nl2br
没有帮助;这是针对HTML的。看起来stackoverflow在你的回答中解析了一些东西:“…并将它们转换为s”我在stru替换之前尝试了nl2br,但由于一些奇怪的原因,它不起作用。嗯,聪明。我希望它不会影响description属性中的HTML,因为它需要HTML。我会尝试一下,然后再回来。Thanks@Francisc不,它不会破坏HTML。它所做的只是提供必要的引用以保留JSON语法,因此HTML标记将被完全忽略。谢谢,这就是我所需要的。:)