有人知道如何将一种类型(可以是byte、kb、mb、gb等)转换为另一种类型吗?例如,我有以下
ini_get('upload_max_filesize')
//这可能是mb,我现在的值是64m,所以我需要补偿较短的缩写
并且mb中的值我需要将其转换为kb或任何其他类型的
Helper::convertType(ini_get('upload_max_filesize'), 'kb'); the kb coulb be bytes or gb
您可以将此代码用作助手,使其具有可读性:
/***将字节转换为人类可读的文件大小。**@param string$bytes*@return string人类可读文件大小(2.87Мб)*@作者Mogilev Arseny*/函数FileSizeConvert($bytes){$bytes=floatval($bytes);$arBytes=数组(0=>数组("UNIT"=>"TB","VALUE"=>pow(1024,4)),1=>阵列("UNIT"=>"GB","VALUE"=>pow(1024,3)),2=>阵列("UNIT"=>"MB","VALUE"=>pow(1024,2)),3=>阵列("UNIT"=>"KB","VALUE"=>1024),4=>阵列("UNIT"=>"B","VALUE"=>1),);foreach($arBytes作为$arItem){if($bytes>=$arItem["VALUE"]){$result=$bytes/$arItem["VALUE"];$result=str_replace(".",",",strval(round($result,2))。"$arItem["UNIT"];打破}}return$result;}
或者使用此功能手动转换文件大小:
函数changeType($size,$from,$to){$arr=['B','KB','MB','GB','TB'];$tSayi=array_search($to,$arr);$eSayi=array_search($from,$arr);$pow=$eSayi-$tSayi;return$size*pow(1024,$pow)。''$到}echo changeType(1,'MB','KB')