2012-06-07 77 views
0

我有一个jQuery Ajax调用一个php文件输出一个json对象。php json_encode for PHP <5.4(意外的令牌)

这个版本在5.3以上版本的PHP中都能正常工作,但是较低版本的JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, and JSON_UNESCAPED_UNICODE尚未实现。

如何在早期版本中跳出像“&”或“=”这样的“json敏感”字符?

谢谢你的时间!

编辑: 划伤的..问题是=> 我在文本<br />和得到改变<br \="">"给出了错误...

+1

我敢肯定'&'和'='在JSON中被视为普通字符,您可能在考虑URL。 –

+0

不,我得到“SyntaxError:Unexpected token =”错误时解析..同样去“&” – Andrej

+3

@Andrej请举例。 – Gumbo

回答

1

如果您使用UTF-8编码,您可以使用此:

$json = preg_replace('/[^(\x20-\x7F)]*/','', $json); 

对于JSON_UNESCAPED_SLAHES,你可以使用:

preg_replace('\\/', '/', $json); 

JSON_UNESCAPED_UNICODE可能有点复杂,我在php.net手册here上找到了一些例子。