首页 > 开发 > PHP > 正文

php jsonp单引号转义

2024-05-04 23:27:53
字体:
来源:转载
供稿:网友
JSONP(JSON with Padding)是一个非官方的协议,他的实现方式大致就是:让客户端决定要回调的Javascript函数名,在第三方服务端将 JSON 数据拼装到回调函数名中,返回的就是参数为JSON数据的函数调用脚本,浏览器加载脚本并执行达到获取第三方数据的目的。
 
 

php中jsonp输出时一般用下面的格式:

 

复制代码代码如下:

callbackname('json string');

 

如果中间的json string中含有单引号,这个输出就是有问题的,调用方一般是无法处理的,所以我们要对单引号进行转义。

如果是用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);

 

然后再输出。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表