我在两个系统之间传递数据。在PHP中,我有一个格式化文本的函数,如下所示:
function cleanText($string) {
return '<p>'.trim(preg_replace('/'n+/', '</p><p>', $string)).'</p>';
}
这就是我将 php-array 作为 json 的方式:
echo json_encode($data);
然后我在 Ajax 中传递该数据,因此我收到如下文本:
{"content":"<p>Hej! Detta ska nu vara ordnat! Ledsen f'u00f6r besv'u00e4r.<'/p>"}
在另一个系统中,我正在使用 Node.js 并像这样解析:
json = JSON.parse(json);
但是这会转义 HTML,我不想要这样,我想将字符串输出为 HTML。我应该怎么做?我应该在 PHP 中以不同的方式指示标记,还是可以以某种方式解析保留 HTML 的 Ajax?
json_encode
会将数组转换为正确的JSON。我会先把它变成数组,然后json_econde它。你的PHP应该是这样的:
function cleanText($string) {
return '<p>' . trim(preg_replace('/'n+/', '</p><p>', $string)) . '</p>';
}
$str = cleanText("My string");
echo json_encode(array("content" => $str));
一旦你这样做了,JS将能够使用JSON.parse(data)
,结果如下:
Object {content: "<p>My string</p>"}