从MySQL TEXT字段替换换行符以解析w / JSON

时间:2010-03-31 07:20:11

标签: php json newline

“替换换行符”似乎是一个问题已经在这里和那里问了几百次。但是,我还没有为自己找到任何可行的解决方案。

我有一个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

2 个答案:

答案 0 :(得分:2)

您需要转义所有在JSON中具有特殊含义的字符,而不仅仅是换行符。而且你还需要转换为UTF-8。

没有必要重新发明轮子,json_encode()可以为你做任何事情。

答案 1 :(得分:1)

Prfff ...&gt; _&lt;傻了我

在替换为\ n

之前,我丢失了另一个斜杠
$t = preg_replace("/\r\n|\n\r|\r|\n/", "\\n", $t);