Php 可能的错误:Facebook事件API eid表值返回时带有原始小数点
几个月前,我构建了一个自定义的wordpress小部件,它可以从用户的facebook上获取事件、样式并在侧边栏中显示。这些事件仍然显示得很好——只是链接现在转到了facebook的错误页面。所以我检查了echo的url,这是我得到的: 显然,以events/结尾的url是硬编码的,后面的数字是echo,是for循环。它已经干净地工作了大约6个月 起初,我认为它可能返回一个整数,这个整数正在被转换。。但我从facebook.com上查看了实际的事件id,这是: 437723309609959 我认为FBAPI将小数点放在了以前从未有过的地方 我只是想澄清一下:我使用的是PHP——通过带有CURL的图形使用FQL。然后回显原始行信息Php 可能的错误:Facebook事件API eid表值返回时带有原始小数点,php,facebook,facebook-graph-api,facebook-events,Php,Facebook,Facebook Graph Api,Facebook Events,几个月前,我构建了一个自定义的wordpress小部件,它可以从用户的facebook上获取事件、样式并在侧边栏中显示。这些事件仍然显示得很好——只是链接现在转到了facebook的错误页面。所以我检查了echo的url,这是我得到的: 显然,以events/结尾的url是硬编码的,后面的数字是echo,是for循环。它已经干净地工作了大约6个月 起初,我认为它可能返回一个整数,这个整数正在被转换。。但我从facebook.com上查看了实际的事件id,这是: 437723309609959
想法?您必须使用32位版本的PHP,其中最大的整数是2147483647 尝试使用而不是echo:
printf('http://graph.facebook.com/events/%s', $eid);
在php.ini中或直接在代码中更改
精度设置:
ini_set('precision', 20);
您的php.ini的精度设置是什么?我无法访问服务器的主php.ini文件。我想我可以为受影响的目录创建一个来测试您的理论。谢谢您的快速响应。我尝试了你的方法,它返回的值与我尝试(int)和intval时的值相同。尝试将上面的%d
更改为%s
。我只是浏览了我为我的一个网站编写的事件刮板,使用该代码是可行的。我有32位PHP,15个字符长的eid
字符串正确呈现。在我的服务器上,ini\u get('precision')
=14。