php jsonp单引号转义
php中jsonp输出时一般用下面的格式:
callbackname('jsonstring');
如果中间的jsonstring中含有单引号,这个输出就是有问题的,调用方一般是无法处理的,所以我们要对单引号进行转义。
如果是用json_encode方式生成可以用下面的方式转义:
$ret=json_encode($result,JSON_HEX_APOS); header('Content-Type:text/javascript;charset=utf-8'); echo$callback.'(\''.$ret.'\');';
这里JSON_HEX_APOS是php是提供的把单引号换为\u0027了。
如果是字符串拼接的,可以用下面的方式:
$jsonData=preg_replace('/\'/','\u0027',$jsonData);
然后再输出。