在PHP中将长整型转换为字符串
我正在使用FMS和PHP,我需要客户端的ID,以便在某个时刻断开某些用户的连接。因此,我从FMS中检索客户机ID,但FMS将ID作为长整数发送,例如在PHP中将长整型转换为字符串,php,flash-media-server,Php,Flash Media Server,我正在使用FMS和PHP,我需要客户端的ID,以便在某个时刻断开某些用户的连接。因此,我从FMS中检索客户机ID,但FMS将ID作为长整数发送,例如4702111234508538223 这是我的问题;我需要在PHP中将这个数字转换成类似于oaacaaa。有没有什么捷径或图书馆可以做到这一点?否则,我必须转换为PHP。此函数将类似于“4702111234525315439”的内容转换为类似于“oAADAAAA”: 此函数将类似于“47021111234525315439”的内容转换为类似于“oA
4702111234508538223
这是我的问题;我需要在PHP中将这个数字转换成类似于
oaacaaa
。有没有什么捷径或图书馆可以做到这一点?否则,我必须转换为PHP。此函数将类似于“4702111234525315439”
的内容转换为类似于“oAADAAAA”
:
此函数将类似于
“47021111234525315439”
的内容转换为类似于“oAADAAAA”
:
您可以使用或PHP功能确保在支持32位和64位PHP的服务器上处理64位数字,然后将结果生成格式化字符串,例如:
$id = "4702111234508538223";
$hi = bcdiv($id, pow(2, 32));
$lo = bcsub($id, bcmul($hi, pow(2, 32)));
var_dump(pack("LL", $lo, $hi));
返回字符串(8)“oAACAAAA”
。
代码是分解的,但也可以很容易地转换为一行代码或函数。使用大数字扩展可以确保与32位平台的兼容性,但如果您确定托管PHP解释器的平台具有64位功能,则可以直接使用
pack("LL", $id, $id / pow(2, 32));
您可以使用或PHP功能确保在支持32位和64位PHP的服务器上处理64位数字,然后将结果生成格式化字符串,例如:
$id = "4702111234508538223";
$hi = bcdiv($id, pow(2, 32));
$lo = bcsub($id, bcmul($hi, pow(2, 32)));
var_dump(pack("LL", $lo, $hi));
返回字符串(8)“oAACAAAA”
。
代码是分解的,但也可以很容易地转换为一行代码或函数。使用大数字扩展可以确保与32位平台的兼容性,但如果您确定托管PHP解释器的平台具有64位功能,则可以直接使用
pack("LL", $id, $id / pow(2, 32));
@Jared你不会碰巧知道PHP如何在内部存储它的整数类型吧?@JamWaffles-对不起,不能说话;脚在嘴里。我的想法是不可能没有一个解决方案,但我发现情况似乎有所不同。我发现问题在于Adobe的耳朵之间有砖头。他们是怎么做到的?@Jared你不会碰巧知道PHP是如何在内部存储它的整数类型的吧?@JamWaffles-对不起,不能说话;脚在嘴里。我的想法是不可能没有一个解决方案,但我发现情况似乎有所不同。我发现问题在于Adobe的耳朵之间有砖头。他们是怎么到那里的?