PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backup, Restore, Migration & Clone / 3.8.2
WP STAGING – WordPress Backup, Restore, Migration & Clone v3.8.2
4.9.1 4.9.0 4.8.1 trunk 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.10.0 3.2.0 3.3.1 3.3.2 3.3.3 3.4.1 3.4.3 3.5.0 3.6.0 3.7.1 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.8.7 3.9.0 3.9.1 3.9.2 3.9.3 3.9.4 4.0.0 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.0 4.7.0 4.7.1 4.7.2 4.7.3 4.8.0
wp-staging / Framework / Utils / Math.php
wp-staging / Framework / Utils Last commit date
Cache 2 years ago DBPermissions.php 2 years ago DataEncoder.php 2 years ago Escape.php 2 years ago Glob.php 2 years ago Hooks.php 2 years ago Math.php 2 years ago PluginInfo.php 2 years ago Sanitize.php 2 years ago ServerVars.php 2 years ago SlashMode.php 5 years ago Strings.php 2 years ago Times.php 2 years ago Urls.php 2 years ago Version.php 2 years ago WpDefaultDirectories.php 2 years ago
Math.php
56 lines
1 <?php
2
3 namespace WPStaging\Framework\Utils;
4
5 class Math
6 {
7 /**
8 * Format bytes into human readable form
9 * @param int $bytes
10 * @param int $precision
11 * @return string
12 */
13 public function formatSize($bytes, $precision = 2)
14 {
15 if ((int)$bytes < 1) {
16 return '';
17 }
18
19 $units = ['B', "KB", "MB", "GB", "TB"];
20
21 $bytes = (int)$bytes;
22 $base = log($bytes) / log(1000); // 1024 would be for MiB KiB etc
23 $pow = pow(1000, $base - floor($base)); // Same rule for 1000
24
25 return round($pow, $precision) . ' ' . $units[(int)floor($base)];
26 }
27
28 /**
29 * Convert a file size from various units to megabytes (MB).
30 *
31 * @param string $fileSize like 100MB, 100KB, 100B, 100GB, 100TB
32 * @return float|int The file size in megabytes (MB).
33 */
34 public function convertUnitToMB($fileSize)
35 {
36 $units = [
37 'B' => 1 / (1024 * 1024), // Bytes to MB
38 'KB' => 1 / 1024, // KB to MB
39 'MB' => 1,
40 'GB' => 1024, // GB to MB
41 'TB' => 1024 * 1024, // TB to MB
42 ];
43
44 if (preg_match('/^(\d+)\s*(B|KB|MB|GB|TB)$/i', $fileSize, $matches)) {
45 $size = (float) $matches[1];
46 $unit = strtoupper($matches[2]);
47
48 if (!empty($units[$unit])) {
49 return $size * $units[$unit];
50 }
51 }
52
53 return 0;
54 }
55 }
56