【问题标题】:Replace newline from MySQL TEXT field to parse w/ JSON替换 MySQL TEXT 字段中的换行符以解析 w/ JSON
【发布时间】:2010-03-31 07:20:11
【问题描述】:

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

我有一个文本区域,用于将数据保存到数据库中。然后使用 AJAX,我想从 TEXT 字段中的后端数据库中获取数据,并使用 JSON 将其传递给前端。但是传递 JSON 会返回错误,因为来自 DB 的新行不是有效的 JSON 语法,我想我应该改用 \n ...

但是如何将 DB 中的换行符替换为 \n?

我试过了

$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

【问题讨论】:

    标签: php json newline


    【解决方案1】:

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

    无需重新发明轮子,json_encode() 可以为您做任何事情。

    【讨论】:

    • 是的,我已经用谷歌搜索了这个,只是想更新。它真的很有用。我以前用完全不同的方式形成json
    【解决方案2】:

    Pffff... >_

    在替换为 \n

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多