php jsonp字符串格式化decode函数
和json_decode函数类似的功能,只是此函数针对jsonp字符串
function jsonp_decode($jsonp, $assoc = false) { // PHP 5.3 adds depth as third parameter to json_decode if($jsonp[0] !== '[' && $jsonp[0] !== '{') { // we have JSONP $jsonp = substr($jsonp, strpos($jsonp, '(')); } return json_decode(trim($jsonp,'();'), $assoc); }
另外也可以使用正则表达式提取出 callback(json
); 中的json字符串:
preg_match("/[a-z]+\((.*)\)/", $str, $t); var_dump($t[1]); var_dump(json_decode($t[1], true));
另外需要注意的是,如果json字符串中有未含引号的字符会出问题的,在javascript中可以使用JSON.stringify()
函数来转换.