Facebook ID的值在PHP中格式不正确

Facebook ID的值在PHP中格式不正确,facebook,facebook-graph-api,facebook-fql,Facebook,Facebook Graph Api,Facebook Fql,我正在使用以下代码检索用户的朋友: $fql_query_url = 'https://graph.facebook.com/fql?q=SELECT+uid,+name,+pic_square+FROM+user+WHERE+uid+IN+(SELECT+uid2+FROM+friend+WHERE+uid1+=+me())+order+by+name&access_token=' . $_SESSION['token']; $fql_query_result = file_get_c

我正在使用以下代码检索用户的朋友:

$fql_query_url = 'https://graph.facebook.com/fql?q=SELECT+uid,+name,+pic_square+FROM+user+WHERE+uid+IN+(SELECT+uid2+FROM+friend+WHERE+uid1+=+me())+order+by+name&access_token=' . $_SESSION['token'];
$fql_query_result = file_get_contents($fql_query_url);
$fql_query_obj = json_decode($fql_query_result, true);
它工作得很好,只是对于任何长度超过11个数字的Facebook ID,它们会被呈现为1.xxxxxxxx e+14,而不是1xxxxxxxx。例如:100000776800425改为1.0000077680042E+14。这不会是一个问题,除非最后一个数字丢失了

令人烦恼的是,如果我在地址栏中插入查询URL,ID就不会改变。如果我从朋友处查询selectuid2,其中uid1=me,则ID也不会改变

这是什么原因造成的?我该如何解决?谢谢

编辑:

我至少设法确定了值在json_解码期间发生了更改,但除此之外,什么都没有

编辑2:


添加ini_set'precision',20解决了这个问题。

php设置会将该值转换为int,而int缺少正确显示较长Facebook ID所需的长度。在脚本开头添加ini_set'precision',20将精度增加到20位