我需要pack('J', $val)在php5.5,但'J‘只支持5.6以后。
如何在php-5.5中模拟它?没有必要对64位数据进行打包。
我的尝试似乎不正确(在Win7 64位上):
pack('J', $val) === pack('N', 0) . pack('N', $val)发布于 2016-12-09 12:19:59
也许有一种更明智的方法可以做到这一点,但这是可行的:
// base_convert() will treat your value as a string here,
// converting it from decimal to hexadecimal
$hexStringValue = base_convert($your64bitInteger, 10, 16);
// Pad with zeros to the left, until pack()'s output length is matched
$hexStringValue = str_pad($hexStringValue, 16, '0', STR_PAD_LEFT);
// Convert to binary
$packed64bitInteger = hex2bin($hexStringValue);不过,我必须指出,无论如何,PHP 5.5于2016年7月达到EOL和您都应该升级到至少5.6版本。
https://stackoverflow.com/questions/41058141
复制相似问题