Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: filesize - неправильный размер
 
 автор: toproot   (13.10.2010 в 11:29)   письмо автору
 
 

Почему filesize() на больших файлах, например 2 , 5 , 7 Гб. выводит неправильный размер файла. Иногда даже отрицательное число!
filesize/1024/1024/1024 и выводится на екран. в итоге файл - 7гб - получается (-1360) Мб.

что это за прикол ?

  Ответить  
 
 автор: Trianon   (13.10.2010 в 11:39)   письмо автору
 
   для: toproot   (13.10.2010 в 11:29)
 

Вам стоит освежить знания о диапазоне представления целочисленных типов в PHP

  Ответить  
 
 автор: toproot   (13.10.2010 в 19:18)   письмо автору
 
   для: Trianon   (13.10.2010 в 11:39)
 

Можете дать ссылку ?

  Ответить  
 
 автор: Trianon   (13.10.2010 в 19:30)   письмо автору
 
   для: toproot   (13.10.2010 в 19:18)
 

как обычно
php.net/filesize

  Ответить  
 
 автор: sim5   (13.10.2010 в 11:40)   письмо автору
 
   для: toproot   (13.10.2010 в 11:29)
 

Это что такое - filesize/1024/1024/1024 ? Как вы считаете и что?

  Ответить  
 
 автор: toproot   (13.10.2010 в 19:18)   письмо автору
 
   для: sim5   (13.10.2010 в 11:40)
 

это перевод в нужные еденицы.

  Ответить  
 
 автор: sim5   (13.10.2010 в 19:26)   письмо автору
 
   для: toproot   (13.10.2010 в 19:18)
 

Мануал
Замечание: Поскольку PHP использует знаковое представления для чисел целого типа, а многие платформы используют 32-битные целые числа, функция filesize() может возвращать неожиданные значения для файлов, чей размер превосходит 2 Гб. Если размер файла находится в пределах 2 - 4 Гб, корректное значение можно получить, используя конструкцию sprintf("%u", filesize($file)).

  Ответить  
 
 автор: toproot   (15.10.2010 в 22:37)   письмо автору
 
   для: sim5   (13.10.2010 в 19:26)
 

так а ни у кого нету нормального варианта решения проблемы ?
ато printf выведет сразу на екран. та то, у меня не только 2 - 4 гб, у меня и 7 и 9 гб.

А если поставить 64-bit PHP . Может поможет ?

  Ответить  
 
 автор: Trianon   (15.10.2010 в 23:25)   письмо автору
 
   для: toproot   (15.10.2010 в 22:37)
 

> А если поставить 64-bit PHP . Может поможет ?

наверняка

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования