Cache
7 months ago
DBPermissions.php
9 months ago
DataEncoder.php
10 months ago
DatabaseOptions.php
2 weeks ago
Escape.php
9 months ago
Glob.php
2 years ago
Hooks.php
2 months ago
Math.php
9 months ago
PluginInfo.php
5 months ago
Sanitize.php
2 months ago
ServerVars.php
2 years ago
SlashMode.php
5 years ago
Strings.php
7 months ago
Times.php
5 months ago
Urls.php
2 weeks ago
Version.php
1 year ago
WpDefaultDirectories.php
2 years ago
Math.php
39 lines
| 1 | <?php |
| 2 | |
| 3 | namespace WPStaging\Framework\Utils; |
| 4 | |
| 5 | use WPStaging\Framework\Traits\FormatTrait; |
| 6 | |
| 7 | class Math |
| 8 | { |
| 9 | use FormatTrait; |
| 10 | |
| 11 | /** |
| 12 | * Convert a file size from various units to megabytes (MB). |
| 13 | * |
| 14 | * @param string $fileSize like 100MB, 100KB, 100B, 100GB, 100TB |
| 15 | * @return float|int The file size in megabytes (MB). |
| 16 | */ |
| 17 | public function convertUnitToMB($fileSize) |
| 18 | { |
| 19 | $units = [ |
| 20 | 'B' => 1 / (1024 * 1024), // Bytes to MB |
| 21 | 'KB' => 1 / 1024, // KB to MB |
| 22 | 'MB' => 1, |
| 23 | 'GB' => 1024, // GB to MB |
| 24 | 'TB' => 1024 * 1024, // TB to MB |
| 25 | ]; |
| 26 | |
| 27 | if (preg_match('/^(\d+)\s*(B|KB|MB|GB|TB)$/i', $fileSize, $matches)) { |
| 28 | $size = (float) $matches[1]; |
| 29 | $unit = strtoupper($matches[2]); |
| 30 | |
| 31 | if (!empty($units[$unit])) { |
| 32 | return $size * $units[$unit]; |
| 33 | } |
| 34 | } |
| 35 | |
| 36 | return 0; |
| 37 | } |
| 38 | } |
| 39 |