code: public static function getBytes($size)
      {
          if (\is_string($size) && \preg_match('/^([\d,.]+)\s?([kmgtp])b?$/i', $size, $matches)) {
              $size = \str_replace(',', '', $matches[1]);
              switch (\strtolower($matches[2])) {
                  case 'p':
                      $size *= 1024;
                      // no break
                  case 't':
                      $size *= 1024;
                      // no break
                  case 'g':
                      $size *= 1024;
                      // no break
                  case 'm':
                      $size *= 1024;
                      // no break
                  case 'k':
                      $size *= 1024;
              }
          }
          $units = array('B','kB','MB','GB','TB','PB');
          $pow = \pow(1024, ($i=\floor(\log($size, 1024))));
          $size = $pow == 0
              ? '0 B'
              : \round($size/$pow, 2).' '.$units[$i];
          return $size;
      }
docs: Convert size int into "1.23 kB"
  
  @param integer|string $size bytes or similar to "1.23M"
  
  @return string