Avatar billede dotcom1 Nybegynder
06. november 2005 - 23:03 Der er 4 kommentarer og
1 løsning

filesize: bytes til kb.

Hvis man nu har:

<?php

$filename = 'somefile.txt';
echo $filename . ': ' . filesize($filename) . ' bytes';

?>

- Så giver det fx. 136714 bytes.

Hvordan får man værdien i kb? Altså fx. 133,5 kb. (Med én decimal.)

Mvh
Avatar billede Slettet bruger
06. november 2005 - 23:14 #1
<?

function convert($b, $dec) {

if($b < 1024) {
if(substr($b, 0, -1) > 1) {
$ekstra = "s";
}
return $b . " byte" . $ekstra;
}

if($b > 1024) {
$endelse = " kilobyte";
$convertTo = 1;
}

if($b > 1024 * 1024) {
$endelse = " megabyte";
$convertTo = 2;
}

if($b > 1024 * 1024 * 1024) {
$endelse = " gigabyte";
$convertTo = 3;
}

if($b > 1024 * 1024 * 1024 * 1024) {
$endelse = " terabyte";
$convertTo = 4;
}

// antal decimaler efter komma
$dec = 1;

$expression = pow(1024, $convertTo);
$b = number_format($b / ($expression), $dec);
if(substr($b, 0, -1) > 1) {
$ekstra = "s";
}
return $b . $endelse . $ekstra;
}



Ovenstående funktion kan f.eks. kaldes med
echo convert(filesize($filename), 1);
Avatar billede dotcom1 Nybegynder
06. november 2005 - 23:21 #2
Det virker helt fint! Jeg er imponeret. :) Læg et svar.
Avatar billede dotcom1 Nybegynder
06. november 2005 - 23:22 #3
Nåh ja, det havde du allerede gjort. :)
Avatar billede Slettet bruger
06. november 2005 - 23:36 #4
;)

Tak for point!
Avatar billede arne_v Ekspert
07. november 2005 - 00:04 #5
et alternativ:

function KMG($b) {
    $diggrp = floor(log($b,1024));
    $suf = array("B","KB","MB","GB");
    $fmt = $diggrp>0 ? "%.1f %s" : "%d %s";
    return sprintf($fmt,$b/pow(1024,$diggrp),$suf[$diggrp]);
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester