PHP 改如何提取这个 openid 值

2014 年 8 月 4 日
 csensix
如题.
QQ登录返回的包是这样的:callback( {"client_id":"YOUR_APPID","openid":"YOUR_OPENID"} );

我想要用其中的openid,有什么好办法可以提取出来么?
6013 次点击
所在节点    问与答
9 条回复
skydiver
2014 年 8 月 4 日
substring
json decode
csensix
2014 年 8 月 4 日
@skydiver 这是json格式吗?
wingoo
2014 年 8 月 4 日
先replace,再json_decode
csensix
2014 年 8 月 4 日
@skydiver 似乎明白了点什么
MaiCong
2014 年 8 月 4 日
<?php
$str = 'callback({"client_id":"YOUR_APPID","openid":"YOUR_OPENID"});';
$lpos = strpos($str, "(");
$rpos = strrpos($str, ")");
$str = substr($str, $lpos+1, $rpos-$lpos-1);
$json = json_decode($str);
// print_r($json);
$openid = $json->openid;
echo $openid;
feiyuanqiu
2014 年 8 月 4 日
这个其实是qq准备让你用js来运行的...

```php
$callback = 'callback( {"client_id":"YOUR_APPID","openid":"YOUR_OPENID"} )';
if (preg_match('/\"openid\":\"(\w+)\"/i', $callback, $match)) {
$openid = $match[1];
}
var_dump($openid);exit;
```
略菜...勿喷
csensix
2014 年 8 月 4 日
@feiyuanqiu 赞一个,已经做好功能了。
zts1993
2014 年 8 月 4 日
jsonp
icanfork
2014 年 8 月 4 日
jsonp

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/126009

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX