PYTHON
#!/usr/bin/env python
#-*- coding:utf-8 -*-
def format_size(size):
suffixes = [("B",2**10), ("KB",2**20), ("MB",2**30), ("GB",2**40), ("TB",2**50)]
for suf, lim in suffixes:
if size > lim:
continue
else:
return round(size/float(lim/2**10),2).__str__()+' '+suf
print format_size(213458923)
# Wynik: 203.57 MB
print format_size(1234)
# Wynik: 1.21 KB
PHP
<?php
function format_size($size) {
if ($size < 1024) {
return $size .' B';
}
else {
$size = round($size / 1024, 2);
$suffix = 'KB';
if ($size >= 1024) {
$size = round($size / 1024, 2);
$suffix = 'MB';
}
return $size .' '. $suffix;
}
}
?>
Powyższa metoda jest najszybsza (0.000113010406494), lecz jeśli potrzebujesz więcej zakresów, użyj poniższej, też szybkiej (0.000128030776978) metody:
<?php
function format_size($size, $round = 2) {
//Size must be bytes!
$sizes = array('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB');
for ($i=0; $size > 1024 && isset($sizes[$i+1]); $i++) $size /= 1024;
return round($size,$round) .' '. $sizes[$i];
}
print format_size(213458923);
# Wynik: 203.57 MB
print format_size(1234);
# Wynik: 1.21 KB
czas wykonania zmierzysz dzięki opisowi z artykułu: „http://ni.recoverydata.pl/content/mierzymy-czas-wykonania-skryptu-php“
Dodaj nową odpowiedź