/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Convert byte -> kilobyte -> Megabyte
Fra : Christian Liljedahl


Dato : 16-01-02 23:59

Hejsa

Der skulle vel ikke være nogen der har/kender en fiks lille funktion, som
automatisk konverterer mellem byte, kilobyte og megabyte afhængig af
størrelsen?

Jeg skal bruge det til en filliste, og vil gerne have den "pæneste" visning.

Eksempel - Noget i stil med:
25000 byte konverteres til : 25 kb
250000 byte konverteres til : 250 kb
900000 byte konverteres til : 0.9 Mb

(Jeg er godt klar over at det ikke er helt korrekt konverteret (1024 show))

Jeg har søgt lidt rundt omkring, men har ikke været heldig.

Med venlig hilsen
Christian Liljedahl



 
 
Christian Joergensen (17-01-2002)
Kommentar
Fra : Christian Joergensen


Dato : 17-01-02 00:04

Christian Liljedahl <chrlilje@kfumscout.dk.dk> wrote:

> Der skulle vel ikke være nogen der har/kender en fiks lille funktion, som
> automatisk konverterer mellem byte, kilobyte og megabyte afhængig af
> størrelsen?

Det er ret let selv at skrive. Hvis ikke du er så meget hjemme i php kan du
prøve at kigge på de tre første punkter på:

<http://www.php.net/manual/en/control-structures.php>

Byg din funktion op med nogle passende if-sætninger. Hvis du er i tvivl om
hvorledes du selv laver funktioner kan du kigge på:

<http://www.php.net/manual/en/functions.php>

--
Christian Jørgensen / Sorry, but my karma just ran over your dogma.
http://www.razor.dk /


Christian Liljedahl (17-01-2002)
Kommentar
Fra : Christian Liljedahl


Dato : 17-01-02 01:05

"Christian Joergensen" <mail@phpguru.dk> wrote in message
news:1161195.DzRSmXj5vs@flaf...
> Det er ret let selv at skrive.

Jeg var lidt doven Her er mit bud på en funktion der klarer det:

function byteconvert ($byte) {
// $byte should be a number

$digits = 1;
$bytemax = 800;
$kilobytemax = 800000;
$megabytemax = 800000000;
$gigabytemax = 800000000000;

switch ($byte) {
case $byte < $bytemax:
$bytestr = round($byte,$digits)." byte";
break;
case $byte < $kilobytemax:
$bytestr = round($byte/1024,$digits)." KB";
break;
case $byte < $megabytemax:
$bytestr = round($byte/(1024*1024),$digits)." MB";
break;
case $byte < $gigabytemax:
$bytestr = round($byte/(1024*1024*1024),$digits)." GB";
break;
default:
$bytestr = round($byte,$digits)." byte";
}
return $bytestr;

}


Mvh Christian



Jonas Häggqvist (17-01-2002)
Kommentar
Fra : Jonas Häggqvist


Dato : 17-01-02 22:16

On Thu, 17 Jan 2002 01:05:24 +0100, "Christian Liljedahl"
<chrlilje@kfumscout.dk.dk> wrote:

>"Christian Joergensen" <mail@phpguru.dk> wrote in message
>news:1161195.DzRSmXj5vs@flaf...
>> Det er ret let selv at skrive.
>
>Jeg var lidt doven Her er mit bud på en funktion der klarer det:
>
>function byteconvert ($byte) {

<klip kode>

>}

function bytes2human($bytes) {
   if ($bytes < 1024) { return $bytes."B"; }
   $suffixes = array("kB","MB","GB","TB","PB","EB","ZB","YB");
   for($i=0,$bytes /= 1024;$bytes>1024;$i++, $bytes /= 1024);
   return sprintf("%01.2f", $bytes).$suffixes[$i];
}

Sætter hvert trin til 1024 gange den forrige, og er fremtidssikret med
rigeligt med suffixes (ret evt til KiB MiB, GiB hvis du finder det
nødvændigt).

--
Jonas Häggqvist
jfh(at)adr(dot)dk

Søg
Reklame
Statistik
Spørgsmål : 177505
Tips : 31968
Nyheder : 719565
Indlæg : 6408554
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste