friendship ended with social-app. php is my new best friend
1<?php
2
3namespace React\Http\Io;
4
5/**
6 * @internal
7 */
8final class IniUtil
9{
10 /**
11 * Convert a ini like size to a numeric size in bytes.
12 *
13 * @param string $size
14 * @return int
15 */
16 public static function iniSizeToBytes($size)
17 {
18 if (\is_numeric($size)) {
19 return (int)$size;
20 }
21
22 $suffix = \strtoupper(\substr($size, -1));
23 $strippedSize = \substr($size, 0, -1);
24
25 if (!\is_numeric($strippedSize)) {
26 throw new \InvalidArgumentException("$size is not a valid ini size");
27 }
28
29 if ($strippedSize <= 0) {
30 throw new \InvalidArgumentException("Expect $size to be higher isn't zero or lower");
31 }
32
33 if ($suffix === 'K') {
34 return $strippedSize * 1024;
35 }
36 if ($suffix === 'M') {
37 return $strippedSize * 1024 * 1024;
38 }
39 if ($suffix === 'G') {
40 return $strippedSize * 1024 * 1024 * 1024;
41 }
42 if ($suffix === 'T') {
43 return $strippedSize * 1024 * 1024 * 1024 * 1024;
44 }
45
46 return (int)$size;
47 }
48}