PHP x86 Как получить размер файла размером> 2 ГБ без внешней программы?

Мне нужно получить размер файла размером более 2 ГБ. (тестирование на файле размером 4,6 ГБ). Есть ли способ сделать это без внешней программы?

Текущее состояние:

  • Размер файла () , stat () и fseek () не работает
  • fread () и feof () работает

Существует возможность получить размер файла, прочитав содержимое файла (очень медленно!).

$size = (float) 0;
$chunksize = 1024 * 1024;
while (!feof($fp)) {
    fread($fp, $chunksize);
    $size += (float) $chunksize;
}
return $size;

Я знаю, как это получить на 64-битных платформах (с использованием fseek ($ fp, 0, SEEK_END) и ftell () ), но мне нужно решение для 32-битной платформы.


Решение: Я начал проект с открытым исходным кодом для этого.

Big File Tools

Big File Tools - это набор хаков, которые необходимы для управления файлами размером более 2 ГБ в PHP (даже в 32-битных системах).

24
задан Community 23 May 2017 в 11:54
поделиться