存档

文章标签 ‘JSON’

php json_encode 遇到html标签 js错误

2012年1月4日 没有评论

当php  json_encode 如下的

$output = array(‘success’ => true, ‘data’ => ‘<p>test</p>’);

时候,

如果前端的js是用eval(‘(‘ + jsonStr + ‘)’);的方式,亦或window.JSON.parse  都会报错

原因在于php的json_encode 默认是不转义< > 这种标签的,

这时候使用json_encode($output, JSON_HEX_TAG) 来把输出的tag开始结束符号转移掉就不会出错了

<
会被转义成\u003C
>
会被转义成 \u003E
 

注意:这根htmlspecialchars两码事

分类: PHP 标签: , ,

array_unique之后json_encode需要注意

2012年1月4日 没有评论

例如:array_unique(array(1, 1, 2));
他的结果是
array(2) {
[0]=>
int(1)
[2]=>
int(2)
}

这就不是numeric数组了,直接做json_encode,会输出一个json对象,而不是数组
{“0″:1,”2″:2}

如果这时候页面上js需要的是[1,2]这种数组数据格式,就有可能会产生错误

此时应该在array_unique之后,在做一个array_values
这样:array_values(array_unique(array(1, 1, 2)));

结果就是[1,2]

分类: PHP 标签: ,