我正在运行64位的Ubuntu Linux。 PHP也是64位的。 我正在尝试使用fscanf从文件中读取整数。 看来fscanf不能扫描超过32位的整数。 看示范波纹pipe。
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位整数algorithm的作品! 它只是sscanf函数不工作。 可能是我错过了一个适当的格式 。
我如何使用scanf读取PHP中的64位整数? 格式是什么?
答案是你需要将你的PHP版本升级到更新的版本。 看来5.2有这个问题 ,但在5.3中是固定的
因此,升级你的PHP版本,你应该很好去…(这不包括5.2是现在的EOL)。