Below are two functions in PHP to assist with calculating bandwidth information. The first to_bytes($value,$unit) will turn value into bytes based on what the unit is. The function bytes_to($value, $unit) converts the $value of bytes to the specified unit. This is what drives our Bandwidth Calculator.

Parameters

The two functions both use the $unit parameter the same. The supported units are:

b  = bits        B  = Bytes
Kb = Kilobits    KB = Kilobytes
Mb = Megabits    MB = Megabytes
Gb = Gigabits    GB = Gigabytes

Function Definitions

$k = 1024;
$m = 1048576;
$g = 1073741824;

function to_bytes($value, $unit)
{
  global $k, $m, $g;
  switch (trim($unit))
  {
    case "b": //bytes
      return ($value / 8);
    case "Kb": //Kilobits
      return (($value * $k) / 8);
    case "Mb": // Megabits
      return (($value * $m) / 8);
    case "Gb": // Gigabits
      return (($value * $g) / 8);
    case "B": // Bytes
      return $value;
    case "KB": // Kilobytes
      return ($value * $k);
    case "MB": // Megabytes
      return ($value * $m);
    case "GB": // Gigabytes
      return ($value * $g);
    default: return 0;
  }
}

function bytes_to($value, $unit)
{
  global $k, $m, $g;
  switch (trim($unit))
  {
    case "b": //bytes
      return ($value * 8);
    case "Kb": //Kilobits
      return (($value * 8) / $k);
    case "Mb": // Megabits
      return (($value * 8) / $m);
    case "Gb": // Gigabits
      return (($value * 8) / $g);
    case "B": // Bytes
      return $value;
    case "KB": // Kilobytes
      return ($value / $k);
      //return bcdiv($value, $k, 4);
    case "MB": // Megabytes
      return ($value / $m);
    case "GB": // Gigabytes
      return ($value / $g);
    default: return 0;
  }
}