проблемы с опридилением размера файла (sprintf("%u",filesize()) не помогает :( )

  • Автор темы Автор темы jeno
  • Дата начала Дата начала

jeno

Новичок
проблемы с опридилением размера файла (sprintf("%u",filesize()) не помогает :( )

вообшем, дела ll (unix)
размер файла:
8199012352

print sprintf("%u",filesize("file"));
отдает размер:
3904045056

как это модно исправить? :confused:

заранее спасибо
 
WP
Хеппи бєздей! ;)

[]p
 
WP
к чему эта ссылка?! я знаю что такое file_size!
он неверный размер возвращает почему-то (думаю из-за того что тип данных в которых он возвращает число, не может вместить в себя такое большое число)
но я не знаю как это исправить....
счас получаю размер файла вот так:

/bin/ls -lA "/home/files/" | grep "file_name" | awk '{print $5}'
 
Автор оригинала: jeno
к чему эта ссылка?! я знаю что такое file_size!
Не знаешь. В документации написано:

Код:
int filesize ( string $filename )

И для тех, кто сам не может догадаться, что int -- это не более, чем FFFFFFFF, написано прямо и открыто:

Note: Because PHP's integer type is signed and many platforms use 32bit integers, filesize() may return unexpected results for files which are larger than 2GB. For files between 2GB and 4GB in size this can usually be overcome by using sprintf("%u", filesize($file)).
8199012352 -- это более 7 гигабайт. Так что ссылка эта -- к тому, чтобы ты оставил функцию file_size в покое.
 
а какая же есть альтернатива file_size?! в юниксе можно и стандартными средствами воспользоваться, а в винде и т.п. как быть?! :(
 
Ответ: поставить в винде "стандартные средства", благо проблем с этим -- никаких.
 
Сверху