基于Twitter API游标的分页(JSON问题)PHP
正如您所知,Twitter为一些API方法发布了一个新的基于光标的分页 目前,我在编码json对象时面临一个问题,因为游标本身实际上是一个64位数字,在PHP中不支持json编码基于Twitter API游标的分页(JSON问题)PHP,twitter,Twitter,正如您所知,Twitter为一些API方法发布了一个新的基于光标的分页 目前,我在编码json对象时面临一个问题,因为游标本身实际上是一个64位数字,在PHP中不支持json编码 next_cursor 1299072354878293926 有什么解决办法吗?我真不敢相信Twitter为什么不直接返回字符串…嗯 thxphp5.2+应该将64位数字转换为浮点数,这比以前版本的PHP(只将其转换为最大32位值)要好。最好的选择是升级到64位版本的PHP,但升级到PHP5.2+至少可以让您启动并
next_cursor 1299072354878293926
有什么解决办法吗?我真不敢相信Twitter为什么不直接返回字符串…嗯
thxphp5.2+应该将64位数字转换为浮点数,这比以前版本的PHP(只将其转换为最大32位值)要好。最好的选择是升级到64位版本的PHP,但升级到PHP5.2+至少可以让您启动并运行。PHP5.2+应该将64位数字转换为浮点数,这比以前的PHP版本(只将其转换为最大32位值)要好。最好的办法是升级到64位版本的PHP,但升级到PHP 5.2+至少可以让您启动并运行。如果您使用的是32位系统,您可以使用regex将光标转换为字符串,然后再使用它进行进一步的请求 下面是我用来实现此目的的PHP函数:
function jsonIntToStr($json){
$pattern = "/\"next_cursor\":([0-9]+),/";
$replace = "\"next_cursor\":\"$1\",";
$new_json = preg_replace($pattern, $replace, $json);
$pattern = "/\"previous_cursor\":([0-9]+),/";
$replace = "\"previous_cursor\":\"$1\",";
$new_json = preg_replace($pattern, $replace, $new_json);
return $new_json;
}
你可以像这样使用它:
$json_result = json_decode(jsonIntToStr($twitter_response));
从中获取。如果您使用的是32位系统,您可以使用正则表达式将光标转换为字符串,然后用于进一步的请求 下面是我用来实现此目的的PHP函数:
function jsonIntToStr($json){
$pattern = "/\"next_cursor\":([0-9]+),/";
$replace = "\"next_cursor\":\"$1\",";
$new_json = preg_replace($pattern, $replace, $json);
$pattern = "/\"previous_cursor\":([0-9]+),/";
$replace = "\"previous_cursor\":\"$1\",";
$new_json = preg_replace($pattern, $replace, $new_json);
return $new_json;
}
你可以像这样使用它:
$json_result = json_decode(jsonIntToStr($twitter_response));
从中获得它。自PHP5.4.0(目前为beta版)以来,可以使用的第四个参数,并将其设置为
JSON\u BIGINT\u AS\u STRING
自PHP5.4.0(目前为beta版)以来,可以使用的第四个参数并将其设置为JSON\u BIGINT\u AS\u STRING
如果字符串是整数,它们为什么会返回字符串?这不是他们的错,PHP的JSON编码没有正确处理它…确切地说…这就是我想弄明白的…我的意思是…这至少应该对所有人都有效,不是吗。。。如果有更好的方法,而不是黑客的价值?为什么他们会返回一个字符串,如果它是一个整数?这不是他们的错,PHP的JSON编码没有正确处理它…确切地说…这就是我想弄明白的…我的意思是…这至少应该对所有人都有效,不是吗。。。如果有更好的方法,而不是黑客的价值?它确实转换为浮动..但我需要的数字,让我通过数据导航…我使用的PHP 5.2+…转换为64位对我来说似乎是不可能的,虽然它肯定会解决问题…它确实转换为浮动..但我需要的数字,让我通过数据导航…我我使用PHP5.2+…转换为64位对我来说似乎是不可能的,尽管它肯定会解决这个问题。。。