Revision: 7076
Updated Code
at July 4, 2008 06:35 by gbot
Updated Code
/**
* Get the human-readable size for an amount of bytes
* @param int $size : the number of bytes to be converted
* @param int $precision : number of decimal places to round to;
* optional - defaults to 2
* @param bool $long_name : whether or not the returned size tag should
* be unabbreviated (ie "Gigabytes" or "GB");
* optional - defaults to true
* @param bool $real_size : whether or not to use the real (base 1024)
* or commercial (base 1000) size;
* optional - defaults to true
* @return string : the converted size
*/
function get_size($size,$precision=2,$long_name=true,$real_size=true) {
$base=$real_size?1024:1000;
$pos=0;
while ($size>$base) {
$size/=$base;
$pos++;
}
$prefix=get_size_prefix($pos);
$size_name=$long_name?$prefix."bytes":$prefix[0].'B';
return round($size,$precision).' '.ucfirst($size_name);
}
/**
* @param int $pos : the distence along the metric scale relitive to 0
* @return string : the prefix
*/
function get_size_prefix($pos) {
switch ($pos) {
case 00: return "";
case 01: return "kilo";
case 02: return "mega";
case 03: return "giga";
case 04: return "tera";
case 05: return "peta";
case 06: return "exa";
case 07: return "zetta";
case 08: return "yotta";
case 09: return "xenna";
case 10: return "w-";
case 11: return "vendeka";
case 12: return "u-";
default: return "?-";
}
}
Revision: 7075
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at July 4, 2008 06:32 by gbot
Initial Code
/** * Get the human-readable size for an amount of bytes * @param int $size : the number of bytes to be converted * @param int $precision : number of decimal places to round to; * optional - defaults to 2 * @param bool $long_name : whether or not the returned size tag should * be unabbreviated (ie "Gigabytes" or "GB"); * optional - defaults to true * @param bool $real_size : whether or not to use the real (base 1024) * or commercial (base 1000) size; * optional - defaults to true * @return string : the converted size */ function get_size($size,$precision=2,$long_name=true,$real_size=true) { $base=$real_size?1024:1000; $pos=0; while ($size>$base) { $size/=$base; $pos++; } $prefix=get_size_prefix($pos); $size_name=$long_name?$prefix."bytes":$prefix[0].'B'; return round($size,$precision).' '.ucfirst($size_name); } /** * @param int $pos : the distence along the metric scale relitive to 0 * @return string : the prefix */ function get_size_prefix($pos) { switch ($pos) { case 00: return ""; case 01: return "kilo"; case 02: return "mega"; case 03: return "giga"; case 04: return "tera"; case 05: return "peta"; case 06: return "exa"; case 07: return "zetta"; case 08: return "yotta"; case 09: return "xenna"; case 10: return "w-"; case 11: return "vendeka"; case 12: return "u-"; default: return "?-"; } }
Initial URL
http://www.roscripts.com/snippets/show/188
Initial Description
Initial Title
PHP - Size converter
Initial Tags
php, file
Initial Language
PHP