PHP 5.5 / 32 位机器上的打包格式 "Q"

pack format "Q" on PHP 5.5 / 32 bit machines

我想实现这里描述的东西:https://webapps.stackexchange.com/a/101153 in PHP。到目前为止,以下似乎有效:

编码

return rtrim(strtr(base64_encode(pack('Q', $int64)), '+/', '-_'), '=');

解码

$bytes = base64_decode(strtr($data, '-_', '+/'));
return unpack('Q', $bytes)[1];

不幸的是,这仅适用于 64 位系统和 PHP5.6.3+,其中引入了 pack/unpack 的 "Q" 格式。

我有什么可能性可以实现在 php5.5 64 位和 32 位上运行相同的相同功能?

正如@Narf 所指出的,使用这个: and replacing base_convert with either: http://php.net/manual/en/function.base-convert.php#106546 or http://php.net/manual/en/function.base-convert.php#109660 为我解决了这个问题。