Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
CRAP | |
100.00% |
5 / 5 |
Bytes | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
2 | |
100.00% |
5 / 5 |
toInt | |
100.00% |
1 / 1 |
2 | |
100.00% |
5 / 5 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\Component\Utility\Bytes. | |
*/ | |
namespace Drupal\Component\Utility; | |
/** | |
* Provides helper methods for byte conversions. | |
*/ | |
class Bytes { | |
/** | |
* The number of bytes in a kilobyte. | |
* | |
* @see http://en.wikipedia.org/wiki/Kilobyte | |
*/ | |
const KILOBYTE = 1024; | |
/** | |
* Parses a given byte size. | |
* | |
* @param mixed $size | |
* An integer or string size expressed as a number of bytes with optional SI | |
* or IEC binary unit prefix (e.g. 2, 3K, 5MB, 10G, 6GiB, 8 bytes, 9mbytes). | |
* | |
* @return int | |
* An integer representation of the size in bytes. | |
*/ | |
public static function toInt($size) { | |
// Remove the non-unit characters from the size. | |
$unit = preg_replace('/[^bkmgtpezy]/i', '', $size); | |
// Remove the non-numeric characters from the size. | |
$size = preg_replace('/[^0-9\.]/', '', $size); | |
if ($unit) { | |
// Find the position of the unit in the ordered string which is the power | |
// of magnitude to multiply a kilobyte by. | |
return round($size * pow(self::KILOBYTE, stripos('bkmgtpezy', $unit[0]))); | |
} | |
else { | |
return round($size); | |
} | |
} | |
} |