Доброго времени суток! Подскажите , пожалуйста код. Размер файла хранится в (кb) , в таблице file поле size . Нужно перед выводом информации на страницу, перевести размер файла из КБ в МБ .
03 Окт 2012, 21:30DenSBK, Например нужно так : до 1024 кb , показывать в кb. Если более 1024 кb, то в mb.
03 Окт 2012, 21:43Borisov, Вот тебе пример вырваный из сеа его и колупай.
[php:1:6804475054]//Красивый размер
if ($file_info['size'] < 1024) {
$file_info['size'] = '' . $file_info['size'] . 'b)';
} else if ($file_info['size'] < 1048576 && $file_info['size'] >= 1024) {
$file_info['size'] = '' . round($file_info['size'] / 1024, 2) . 'Kb)';
} else {
$file_info['size'] = '' . round($file_info['size'] / 1048576, 2) . 'Mb)';
}[/php:1:6804475054]
[php:1:13b8abeb9f]function f_bafsize($size){
$iec = array('б', 'Кб', 'Мб', 'Гб', 'Тб', 'Пб', 'Эб');
$i = 0;
while (($size/1024)>1){
$size = $size/1024;
$i++;
}
$size = explode('.', $size);
$echo = $size[0].'.'.substr($size[1],0,2).' '.$iec[$i];
return $echo;
}[/php:1:13b8abeb9f]
Romb, что за велосипед под конец функции? Зачем explode?
[php:1:58fb6401e2]function f_bafsize($size){
$iec = array('б', 'Кб', 'Мб', 'Гб', 'Тб', 'Пб', 'Эб');
$i = 0;
while (($size/1024)>1){
$size = $size/1024;
$i++;
}
return round($size, 2).' '.$iec[$i];
}[/php:1:58fb6401e2]
Okula пишет:
"Romb, что за велосипед под конец функции? Зачем explode?"
Наверное было лень подходящую функцию искать
Okula, ваш код не работает. У меня же информация хранится в : $file_info['size'] . Как мне в вашу функцию это вставить?
04 Окт 2012, 20:57Borisov, всё работает прекрассно:
[php:1:b4e3c5986c]echo f_bafsize($file_info['size']);[/php:1:b4e3c5986c]