又是一個程式碎片的加強,= =真是吃飽太閒,這次的改寫是舊文章將檔案大小轉換易讀單位的延伸,不過說實在話,這個改寫實際的意義並不大,原本那個應該就很夠用了,這次追加的功能就只是"可以指定要轉換的單位",程式碼如下:

//*********************************
//  檔案大小單位轉換函式:強化版
//*********************************
function size_unit($size,$decimal=null,$unit=null){
    if(is_numeric($size)){
        //設定單位
        $size_unit = array('Bytes','KB','MB',
                           'GB','TB','PB',
                           'EB','ZB','YB');
        //初始化索引與單位
        $flag = 0;
        //進行簡化除算
        while(strnatcasecmp($unit,$size_unit[$flag])){
            $size = $size / 1024;
            $flag++;
            if($unit==null && $size <= 1024){
                break;
            }
        }
        //指定小數位數
        if(is_numeric($decimal)){
            $size = number_format($size,$decimal);
        }
        //未指定單位回傳最終大小與單位
        return array(		
            'size' => $size,
            'unit' => $size_unit[$flag]
        );
    } else {
        return 'Input is not numeric!';
    }
}
//=====================
//   函式測試
//=====================
//原始檔案大小
$size = 574168418;
//自動轉換至最適單位
$size_unit1 = size_unit($size);//547.56967353821MB
//指定小數位數
$size_unit2 = size_unit($size,2);//547.57MB
//轉換至指定的單位
$size_unit3 = size_unit($size,5,'GB');//0.53474GB

低溫烘培 發表在 痞客邦 PIXNET 留言(0) 人氣()