php jsonp单引号转义
更新时间:2014年11月23日 15:58:02 投稿:hebedich
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);
然后再输出。
相关文章
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
这篇文章主要介绍了thinkPHP连接sqlite3数据库的实现方法,涉及thinkPHP的数据库相关配置技巧,并附带了Thinkphp代码生成器供读者下载使用,需要的朋友可以参考下2016-05-05
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
我们将绕过php远程文件包含的限制,并执行RFI的利用,即使PHP环境被配置为不包含来自远程HTTP/FTP URL的文件。对此文感兴趣的朋友跟随小编一起看看吧2019-05-05


最新评论