1
0
Fork 0
MySQLDumper/application/views/helpers/ByteOutput.php

50 Zeilen
1.4 KiB
PHP

<?php
/**
* This file is part of MySQLDumper released under the GNU/GPL 2 license
* http://www.mysqldumper.net
*
* @package MySQLDumper
* @subpackage View_Helpers
* @version SVN: $Rev$
* @author $Author$
*/
/**
* Human readable byte output
*
* @package MySQLDumper
* @subpackage View_Helpers
*/
class Msd_View_Helper_ByteOutput extends Zend_View_Helper_Abstract
{
/**
* Humanize byte output
*
* @param int $bytes
* @param int $precision
* @param boolean $useHTML
*
* @return string
*/
public function byteOutput($bytes, $precision = 2, $useHtml = true)
{
$unitsLong = array('Bytes', 'KiloBytes', 'MegaBytes', 'GigaBytes',
'TeraBytes', 'PetaBytes', 'ExaBytes', 'YottaBytes');
$unitsShort = array('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB');
for ($level = 0; $bytes >= 1024; $level++) {
$bytes /= 1024;
}
if (!is_numeric($bytes) || !isset($unitsShort[$level])) {
return $bytes;
}
$pattern = '<span class="explain tooltip" title="%s">%s</span>';
$suffix = sprintf($pattern, $unitsLong[$level], $unitsShort[$level]);
if (!$useHtml) {
$suffix = strip_tags($suffix);
}
$ret = sprintf("%01." . $precision . "f", round($bytes, $precision));
return trim($ret . ' ' . $suffix);
}
}