まだまだ共通化や整形できそうな部分が多いと感じるのですが、
どのように変更すれば美しくなるかイメージが湧いてきません...
コンパクトにする上で、考え方やサンプルをご教授頂きたいです。
lang
1// バイトサイズ相互変換 byte <-> KB,MB,GB,TB 2function filesizeConvert($size) { 3 4 $size = trim($size); 5 6 $list = array( 7 'B' => 1, 8 'KB' => 1024, 9 'MB' => pow(1024, 2), 10 'GB' => pow(1024, 3), 11 'TB' => pow(1024, 4), 12 'PB' => pow(1024, 5), 13 ); 14 15 if (strlen(floatval($size)) === strlen($size)) { 16 // byte -> MB,GB... 17 // 1073741824 -> 1GB 18 19 $size = floatval($size); 20 21 $list = array_reverse($list); 22 23 // byte -> MB,GB... 24 // 1073741824 -> 1GB 25 foreach($list as $capacity => $pow) { 26 if($size >= $pow) { 27 $size = $size / $pow; 28 $size = str_replace(".", "," , strval(round($size, 2))) . $capacity; 29 return (string)$size; 30 } 31 } 32 } else { 33 // MB,GB... -> byte 34 // 1GB -> 1073741824 35 36 array_shift($list); 37 38 // MB,GB... -> byte 39 // 1GB -> 1073741824 40 foreach($list as $capacity => $pow) { 41 if (stristr($size, $capacity)) { 42 $size = $size * $pow; 43 $size = str_replace(".", "," , strval(round($size, 2))); 44 return (string)$size; 45 } 46 } 47 } 48 49 return false; 50}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。