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 为我解决了这个问题。
我想实现这里描述的东西: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 所指出的,使用这个: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 为我解决了这个问题。