PHP version
Function myfilesizeswitch ($ basenumber, $ singlefractional = true) {<br/> $ unitdivisors = array (1073741824,104 8576, 1024, 1 ); <br/> $ unitlabels = array ("GB", "MB", "kb", "B"); <br/> $ I; $ unit; $ unitdivisor; $ unitlabel; <br/> $ unitlabelslen = count ($ unitlabels); <br/> $ unitdivisorslen = count ($ unitdivisors ); </P> <p> if ($ basenumber = 0) {<br/> return "0" + $ unitlabels [$ unitlabelslen-1]; <br/>}< br/> if ($ sing Lefractional) {<br/> $ unit = $ basenumber; <br/> $ unitlabel = $ unitlabelslen >=$ unitdivisorslen? $ Unitlabels [$ unitdivisorslen-1]: ""; <br/> for ($ I = 0; $ I <$ unitdivisorslen; $ I ++) {<br/> if ($ basenumber >=$ unitdivisors [$ I]) {<br/> $ unit = round ($ basenumber/$ unitdivisors [$ I], 2); <br/> $ unitlabel = $ unitlabelslen >=$ I? "". $ Unitlabels [$ I]: ""; <br/> break; <br/>}< br/> return $ unit. $ unitlabel; <br/>}else {<br/> $ formattedstrings = array (); <br/> $ remainder = $ basenumber; <br/> for ($ I = 0; $ I <$ unitdivisorslen; $ I ++) {<br/> $ unitdivisor = $ unitdivisors [$ I]; <br/> $ unitlabel = $ unitlabelslen> $ I? "". $ Unitlabels [$ I]: ""; <br/> $ unit = $ remainder/$ unitdivisor; <br/> if ($ I <$ unitdivisorslen-1) {<br/> $ unit = floor ($ Unit); <br/>}else {<br/> $ unit = round ($ unit, 2 ); <br/>}< br/> if ($ unit> 0) {<br/> $ remainder = $ remainder % $ unitdivisor; <br/> array_push ($ formattedstrings, $ unit. $ unitlabel); <br/>}< br/> return implode ("", $ formattedstrings ); <br/>}< br/>
JS version
Function myfilesizeswitch (basenumber) <br/>{< br/> var unitdivisors = [1073741824,104 8576, 1024, 1], unitlabels = ["GB", "MB ", "kb", "B"], singlefractional = true; <br/> var I, unit, unitdivisor, unitlabel; <br/> If (basenumber = 0) {<br/> return "0" + unitlabels [unitlabels. length-1]; <br/>}< br/> If (singlefractional) {<br/> unit = basenumber; <br/> unitlabel = unitlabels. length> = unitdivi Sors. length? Unitlabels [unitdivisors. length-1]: ""; <br/> for (I = 0; I <unitdivisors. length; I ++) {<br/> If (basenumber> = unitdivisors [I]) {<br/> unit = (basenumber/unitdivisors [I]). tofixed (2); <br/> unitlabel = unitlabels. length> = I? "" + Unitlabels [I]: ""; <br/> break; <br/>}< br/> return unit + unitlabel; <br/>} else {<br/> var formattedstrings = []; <br/> var remainder = basenumber; <br/> for (I = 0; I <unitdivisors. length; I ++) {<br/> unitdivisor = unitdivisors [I]; <br/> unitlabel = unitlabels. length> I? "" + Unitlabels [I]: ""; <br/> unit = remainder/unitdivisor; <br/> if (I <unitdivisors. length-1) {<br/> unit = math. floor (unit); <br/>}else {<br/> unit = unit. tofixed (2); <br/>}< br/> If (unit> 0) {<br/> remainder = remainder % unitdivisor; <br/> formattedstrings. push (Unit + unitlabel); <br/>}< br/> return formattedstrings. join (""); <br/>}< br/>