При написании кода вы можете столкнуться с ситуацией, когда какая-либо функция, например memory_get_usage()
возвращает результат своей работы в байтах.
Это число может оказаться слишком большим для того, чтобы его быстро понять, поэтому вам пригодится функция, которая конвертирует это число в более понятный человеку формат килобайт, мегабайт, гигабайт или терабайт.
// функция форматирует байты в человекопонятное представление
function format_bytes( $bytes, $precision = 2 ) {
$units = array('B', 'KB', 'MB', 'GB', 'TB');
$bytes = max($bytes, 0);
$pow = floor(($bytes ? log($bytes) : 0) / log(1024));
$pow = min($pow, count($units) - 1);
// раскомментируйте одну из следующих строк
$bytes /= pow(1024, $pow);
//$bytes /= (1 << (10 * $pow));
return round($bytes, $precision) . ' ' . $units[$pow];
}
Функция принимает два параметра — количество байт $bytes
и число $precision
, означающее до какого знака после запятой округлять результат. Функция не выводит значение на экран, а возвращает значение для обработки, поэтому чтобы увидеть результат вам нужно написать:
echo format_bytes( $memory );
Эта функция также пригодится при расчете количества памяти, затраченного на выполнение какой-либо функции в php.