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

jeno

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

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

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

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

заранее спасибо
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
WP
Хеппи бєздей! ;)

[]p
 

jeno

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

/bin/ls -lA "/home/files/" | grep "file_name" | awk '{print $5}'
 

Crazy

Developer
Автор оригинала: 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 в покое.
 

jeno

Новичок
а какая же есть альтернатива file_size?! в юниксе можно и стандартными средствами воспользоваться, а в винде и т.п. как быть?! :(
 

Crazy

Developer
Ответ: поставить в винде "стандартные средства", благо проблем с этим -- никаких.
 
Сверху