Php JavaScript和包含\r和/或\n字符的字符串数组
我有一个从数据库动态生成的数组。基本上,它是一个对象数组,PHP将其打印到本节中的页面 最终输出如下所示: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
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标记将被完全忽略。谢谢,这就是我所需要的。:)