fork(2) download
  1. <?php
  2.  
  3. $arr = array('500.2 KiB', '256M', '700 Mb', '1.2GiB');
  4. foreach ($arr as $s) {
  5. if (preg_match('~^([0-9]+)(\.[0-9]+)?\s?([^ib]?)(i?)(b?)$~i', $s, $m)) {
  6. print_r($m) . "\n";
  7. }
  8. }
  9.  
Success #stdin #stdout 0.01s 82944KB
stdin
Standard input is empty
stdout
Array
(
    [0] => 500.2 KiB
    [1] => 500
    [2] => .2
    [3] => K
    [4] => i
    [5] => B
)
Array
(
    [0] => 256M
    [1] => 256
    [2] => 
    [3] => M
    [4] => 
    [5] => 
)
Array
(
    [0] => 700 Mb
    [1] => 700
    [2] => 
    [3] => M
    [4] => 
    [5] => b
)
Array
(
    [0] => 1.2GiB
    [1] => 1
    [2] => .2
    [3] => G
    [4] => i
    [5] => B
)