производительность — Как читать файлы больше, чем PHP_INT_MAX в PHP?

Я использую Win 7, 64-разрядную версию и установку XAMPP (ApacheFriends XAMPP версии 5.6.3).

Я попробовал функцию, данную в http://php.net/manual/en/function.fseek.php#112647

Но это не сработало.
Это только когда-либо читает до байта PHP_INT_MAX, который является 2147483647. Я попытался искать вокруг этого числа, так что я почти уверен, что это граница.

Кто-то сказал, что это зависит от того, какой тип данных php использует внутри.
Где найти информацию о типе данных, использованном в моей установке php?

Является ли это ответом в файле readme.txt, если каталог установки xampp: «+ PHP 5.6.3 (32-битный поток VC11 X86 безопасен) + PEAR»?

Привет Джон

-1

Решение

Невозможно выполнить поиск (PHP_MAX_INT + 8192) с 32-битной сборкой php.
(Можно использовать 64-битную сборку php, но я этого не пробовал.)

Однажды стремясь к максимально возможной позиции, оттуда все еще можно помешать, но дальше искать невозможно.

Попытки обходных путей (которые даже были отклонены на php.net-manual) с несколькими поисками не работали в моей системе. Вместо этого они помещают указатель файла в разные позиции под PHP_MAX_INT.

1

Другие решения

64-битная версия PHP 7 работает, выглядит стабильной и не является «экспериментальной», как сборки 5.6. Это ваш лучший выбор, если у вас есть возможность обновить. Чтобы справиться с некоторыми изменениями, несовместимыми с предыдущими версиями, такими как обработка ошибок, потребуется немного усилий.

В качестве примечания вы получите неожиданные (неработающие) сценарии, если попытаетесь обработать почти все, что больше 2 ГБ, в 32-разрядной сборке. Даже установка любых переменных php.ini, таких как memory_limit больше 2 ГБ, может привести к неожиданным результатам.

1

По вопросам рекламы [email protected]