50 Zeilen
1,4 KiB
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);
|
||
|
}
|
||
|
|
||
|
}
|