php中jsonp输出时一般用下面的格式:
复制代码 代码如下:
callbackname('json string');
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 . '\\');';
$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);
$jsonData = preg_replace('/\\'/', '\\u0027', $jsonData);
然后再输出。
相关文章
猜你喜欢
- ASP.NET本地开发时常见的配置错误及解决方法? 2025-06-10
- ASP.NET自助建站系统的数据库备份与恢复操作指南 2025-06-10
- 个人网站服务器域名解析设置指南:从购买到绑定全流程 2025-06-10
- 个人网站搭建:如何挑选具有弹性扩展能力的服务器? 2025-06-10
- 个人服务器网站搭建:如何选择适合自己的建站程序或框架? 2025-06-10

