Facebook ID整数奇怪地返回

Ste*_*tty 3 json facebook-fql

我正在使用以下url进行FQL调用,然后进行curl调用.

$ url ='https://api.facebook.com/method/fql.query?access_token='.$access_token.'&query='.rawurlencode($query).'&format=JSON';

然后我通过json_decode调用传递返回的数据

我有这个问题:

SELECT name,page_id,page_url FROM page WHERE page_id IN(SELECT page_id FROM page_admin WHERE uid = $ uid)

返回指定UID为管理员的名称和页面列表.

在一些PHP安装上(我无法缩小它),page_id从一个长整数转换为科学记数法 - 所以174311849258492返回为1.7431184925849E 14当然会破坏它.

因为我无法在我的服务器上重现这一点,所以我不确定转换发生的位置.四处寻找我发现了这样做的建议:

json_decode(preg_replace('/:(\ d +,)/',':"$ {1}",',$ response));

会解决它

但是为什么有些json_decodes没有明显的理由投入科学记数法呢?

Ste*_*tty 7

如果您正在使用自己的curl调用,那么您只需将&format = JSON-STRINGS附加到url的末尾即可将所有项目作为字符串返回.