Получение размера файла весом 40Гб

175
24 февраля 2018, 22:42

Используя filesize() результат "-1424707584", как можно еще получить размер больших файлов?

Answer 1

Известная проблема тех платформ, где int оказывается 32битным. Но на сайте php:filesize в коментариях есть несколько способов, как узнать этот размер.

Самый простой (как по мне) способ - это выполнить ls -l для этого файла и аккуратно распарсить вывод. Можно также сделать запрос stat -c "%s" имяфайла (парсить проще)

exec('stat -c "%s" file.txt', $output);
$size = $output[0];

Да, этот способ "платформеннозависимый" (да, он только для линукс/юникс/мак), но можно написать и реализацию под другие ОСи.

Второй способ - это открыть файл на чтение и переместить указатель чтения в самый конец. А потом узнать его позицию.

READ ALSO
Как вырезать текст php

Как вырезать текст php

Есть вот такой текст:

171
Не работает фуркция render() при Pjax-запросе

Не работает фуркция render() при Pjax-запросе

Доброго времени суток, у меня есть форма(ActiveForm), которую я пытаюсь передать через PjaxПроблема в том, что в контроллере не срабатывает функция...

165
Как вывести двумерный масив в php

Как вывести двумерный масив в php

Знаю как вывести одномерный масив:

169
Как правильно вывести html через функцию echo

Как правильно вывести html через функцию echo

В теге use идёт ссылка на svg спрайт и эта ссылка "не работает", то есть не задаёт правильный адрес

158