Мне нужно получить размер файла размером более 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 - это набор хаков, которые необходимы для управления файлами размером более 2 ГБ в PHP (даже в 32-битных системах).