Представить числа как сокращенные, как SO (13500 => 13,5k)? - PullRequest
0 голосов
/ 23 октября 2009

Хорошо, я пишу свой собственный код JS для этой ошибки. Я уверен, что есть что-то более всеобъемлющее, что я могу использовать. Однако мой Google Mojo не работает - любая помощь в поиске открытого исходного кода, который поможет мне представить числа, например, как SO для больших чисел (102500 => 102,5K, 18601 => 18,6K и т. Д.)?

JS или PHP были бы великолепны, иначе я могу перевести.

Спасибо!

Ответы [ 2 ]

4 голосов
/ 23 октября 2009

Или прямо проверьте

Размер файла, читаемый человеком

Codepaste

/**
 * Return human readable sizes
 *
 * @author      Aidan Lister <aidan@php.net>
 * @version     1.3.0
 * @link        http://aidanlister.com/repos/v/function.size_readable.php
 * @param       int     $size        size in bytes
 * @param       string  $max         maximum unit
 * @param       string  $system      'si' for SI, 'bi' for binary prefixes
 * @param       string  $retstring   return string format
 */
function size_readable($size, $max = null, $system = 'si', $retstring = '%01.2f %s')
{
    // Pick units
    $systems['si']['prefix'] = array('B', 'K', 'MB', 'GB', 'TB', 'PB');
    $systems['si']['size']   = 1000;
    $systems['bi']['prefix'] = array('B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB');
    $systems['bi']['size']   = 1024;
    $sys = isset($systems[$system]) ? $systems[$system] : $systems['si'];

    // Max unit to display
    $depth = count($sys['prefix']) - 1;
    if ($max && false !== $d = array_search($max, $sys['prefix'])) {
        $depth = $d;
    }

    // Loop
    $i = 0;
    while ($size >= $sys['size'] && $i < $depth) {
        $size /= $sys['size'];
        $i++;
    }

    return sprintf($retstring, $size, $sys['prefix'][$i]);
}
1 голос
/ 23 октября 2009

Это даст вам действительно хороший пример того, как именно это сделать: http://www.jonasjohn.de/snippets/php/readable-filesize.htm

Ссылка указана для мегабайт, но если вы хотите, чтобы она была для тысяч, просто измените переменную $ mod и измените заданные имена. Тогда он идеально подойдет для ваших целей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...