php中jsonp输出时一般用下面的格式:
<br />callbackname('json string'<i>*本5文来源gaodai$ma#com搞$$代**码)网@</i><img>搞代码gaodaima</img>);<br />
如果中间的json string中含有单引号,这个输出就是有问题的,调用方一般是无法处理的,所以我们要对单引号进行转义。
如果是用json_encode方式生成可以用下面的方式转义:
<br />$ret = json_encode($result, JSON_HEX_APOS);<br />header('Content-Type: text/javascript; charset=utf-8');<br />echo $callback . '(\'' . $ret . '\');';<br />
这里 JSON_HEX_APOS 是php是提供的把单引号换为 \u0027 了。
如果是字符串拼接的,可以用下面的方式:
<br />$jsonData = preg_replace('/\'/', '\u0027', $jsonData);<br />
然后再输出。