Я использую 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, которая не работает. Может быть, мне не хватает правильного формата .
Как я могу прочитать 64-битные целые числа в PHP, используя scanf? Какой будет формат?