我在两个系统之间传递数据。在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?
答案 0 :(得分:0)
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>"}