“替换换行符”似乎是一个问题已经在这里和那里问了几百次。但是,我还没有为自己找到任何可行的解决方案。
我有一个textarea用于将数据保存到DB中。然后使用AJAX我想从后端的DB中获取数据,该数据位于TEXT字段中,并使用JSON将其传递给前端。但是,引用JSON会返回错误,因为来自DB的新行不是有效的JSON语法,我想我应该使用\ n而不是......
但是如何用\ n?
替换DB中的换行符我试过这个
$t = str_replace('<br />', '\n', nl2br($t));
和这个
$t = preg_replace("/\r\n|\n\r|\r|\n/", "\n", $t);
并使用CHAR(13)和CHAR(10),但仍然出现错误
textarea中的新行相当于,我想
$t = 'text with a
newline';
它给出了同样的错误。在记事本中我清楚地看到它是 crlf
答案 0 :(得分:2)
您需要转义所有在JSON中具有特殊含义的字符,而不仅仅是换行符。而且你还需要转换为UTF-8。
没有必要重新发明轮子,json_encode()可以为你做任何事情。
答案 1 :(得分:1)
Prfff ...&gt; _&lt;傻了我
在替换为\ n
之前,我丢失了另一个斜杠$t = preg_replace("/\r\n|\n\r|\r|\n/", "\\n", $t);