バイト/ kb/mb/tb/gbを計算する簡単な方法

私は年齢のためにこのようなスクリプトを作成したかった。私はそれを何かの理由で何も表示しようとしなかった。他の誰かがこのようなクラスの例を持っていますか?これを表示する効率的な方法は何と思いますか?これは、ユーザーが値を入力することに基づいています。

<?php


    if($_GET['step'] == 2) {

    $bytes = $_GET['bytes'];

    echo $bytes; 

    $kilobyte = 1024;
$megabyte = $kilobyte * 1024;
$gigabyte = $megabyte * 1024;
$terabyte = $gigabyte * 1024;

if (($bytes >= 0) && ($bytes < $kilobyte)) {
    return $bytes;

}
   if (($bytes >= $kilobyte) && ($bytes < $megabyte))
    {
    return $kb = round($bytes/$kilobyte); 

}
     if (($bytes >= $megabyte) && ($bytes < $gigabyte))
     {
    return $mb = round($bytes/$megabyte);
}
    if (($bytes >= $gigabyte) && ($bytes < $terabyte))
    {
    return $gb = round($bytes/$gigabyte);

}
    if ($bytes >= $terabyte)
    {
    return $tb = round($bytes/$terabyte);
}
    else {
    return $bytes;
}

    $content .= "

Details of Memory Size

<table> <tr> <th>Bytes</th> <th>KB</th> <th>MB</th> <th>GB</th> <th>TB
2
なぜあなたはそこに戻りますか?あなたが私たちに見せない何かがありますか?
追加された 著者 Jan Højriis Dragsbaek,

2 答え

しばらく前に、バイトを人間が読める形式のSIとバイナリの接頭辞に変換するためのphp docsのコメントで見つけた関数:

function size_readable($size, $max = null, $system = 'bi', $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
追加された

このようなことをやろうとしていたのですか?

<html>

   <head>
     <title>Byte scale calculator</title>
   </head>

   <body>
<?php

  if ($_GET['step'] == 2) {

   //Handle submissions

    $bytes = $_GET['bytes'];

   //Calculate KB
    $kilobyte = 1024;
    $kb = round($bytes/$kilobyte, 2);

   //Calculate MB
    $megabyte = $kilobyte * 1024;
    $mb = round($bytes/$megabyte, 2);

   //Calculate GB
    $gigabyte = $megabyte * 1024;
    $gb = round($bytes/$gigabyte, 2);

   //Calculate TB
    $terabyte = $gigabyte * 1024;
    $tb = round($bytes/$terabyte, 2);

?>
     

Details of Memory Size

<table> <tr> <th>Bytes</th> <th>KB</th> <th>MB</th> <th>GB</th> <th>TB</th> </tr> <tr> <td><?php echo $bytes; ?></td> <td><?php echo $kb; ?></td> <td><?php echo $mb; ?></td> <td><?php echo $gb; ?></td> <td><?php echo $tb; ?></td> </tr> </table> <?php } ?> <form action='' method='get'> <input type='hidden' name='step' value='2' /> <!-- You had the form method set to post, but you were trying to fecth data from $_GET --> <table> <tr> <th>Enter the number of kilobytes on unix drive</th> <td><input type='text' name='bytes' /></td> </tr> <tr> <td><input type='submit' /></td> </tr> </table> </form> </body> </html>

あまりにも多くの変更がありますので、あなたが理解できないものがあれば、一番下のコメントでお気軽にお尋ねください。

0
追加された
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com