我正在运行64位Ubuntu Linux。php也是64位的。我正在尝试使用fscanf从文件中读取整数。fscanf似乎无法扫描超过32位的整数。请参阅下面的演示。
var_dump(
$a = PHP_INT_MAX,
--$a,
(string)$a,
sscanf((string)$a, "%u"),
PHP_INT_SIZE
);
输出
int(9223372036854775807)
int(9223372036854775806)
string(19) "9223372036854775806"
array(1) {
[0]=>
string(10) "4294967294"
}
int(8)
看,64位整数运算有效!只是sscanf函数不起作用。可能是我缺少一个正确的格式
如何使用scanf在PHP中读取64位整数?格式是什么?
答案是您需要将PHP版本升级到更现代的版本。看起来5.2有这个问题,但它在5.3 中得到了修复
所以升级你的PHP版本,你应该很好地去。。。(这还不算5.2在一段时间内是EOL)。。。