Gjest Slettet+6132 Skrevet 11. august 2005 Del Skrevet 11. august 2005 (endret) God kveld/natt/morgen ( ) Sitter da her og kjeder meg, og så er det en liten funksjon som jeg ikke får helt til slik jeg vil. function makebyte($input) { $split = split(" ", $input); $size = $split[0]; $prefix = $split[1]; if ($prefix == "kB") { $bytes = $size * 1024; } if ($prefix == "MB") { $bytes = $size * 1024 * 1024; } if ($prefix == "GB") { $bytes = $size * 1024 * 1024 * 1024; } else { $bytes = "0"; } return $bytes; } Bruksmåten er simpel, makebyte("45 GB");, men noe fungerer ikke som jeg har lyst. Hvis jeg bruker enkel "=" på if så hopper den tin GB uansett, hvis jeg bruker doble så returnerer den 0. Noen som orker å hjelpe en trøtt stakkar? Endret 11. august 2005 av Slettet+6132 Lenke til kommentar
???????? Skrevet 11. august 2005 Del Skrevet 11. august 2005 Hva er problemet med den? Den fungerer bra den. Lenke til kommentar
Gjest Slettet+6132 Skrevet 11. august 2005 Del Skrevet 11. august 2005 (endret) Hva er problemet med den? Den fungerer bra den. Har du virkelig testa den? Den funker kun om prefix er "GB", og da gir den et feil tall. <? $test = makebyte("34 MB"); echo "$test"; ?> Gir ut 0. Så noe må være galt Endret 11. august 2005 av Slettet+6132 Lenke til kommentar
???????? Skrevet 11. august 2005 Del Skrevet 11. august 2005 Okay... svarte vist litt for tidlig i dag. Feilen din er at du bruker if hele veien og ikke elseif. Det betyr at if ($prefix == "GB") { $bytes = $size * 1024 * 1024 * 1024; } else { $bytes = "0"; else her er else uansett hva annet enn GB det er. Lenke til kommentar
Gjest Slettet+6132 Skrevet 11. august 2005 Del Skrevet 11. august 2005 (endret) Okay... svarte vist litt for tidlig i dag.Feilen din er at du bruker if hele veien og ikke elseif. Det betyr at if ($prefix == "GB") { $bytes = $size * 1024 * 1024 * 1024; } else { $bytes = "0"; else her er else uansett hva annet enn GB det er. Men hvis jeg fjerner else så går den rett til GB uansett Edit: har prøvd med elseif også Endret 11. august 2005 av Slettet+6132 Lenke til kommentar
???????? Skrevet 11. august 2005 Del Skrevet 11. august 2005 (endret) function makebyte($input) { $split = split(" ", $input); $size = $split[0]; $prefix = $split[1]; echo $prefix; if ($prefix == "kB") { $bytes = $size * 1024; } elseif ($prefix == "MB") { $bytes = $size * 1024 * 1024; } elseif ($prefix == "GB") { $bytes = $size * 1024 * 1024 * 1024; } else { $bytes = "0"; } return $bytes; } echo makebyte("34 MB"); Se: http://no2.php.net/manual/en/control-structures.elseif.php Endret 11. august 2005 av ???????? Lenke til kommentar
Gjest Slettet+6132 Skrevet 11. august 2005 Del Skrevet 11. august 2005 Funker fortsatt ikke, er noe bøg med de ifene. Lenke til kommentar
???????? Skrevet 11. august 2005 Del Skrevet 11. august 2005 Hva er problemet, her gir det scriptet: echo makebyte("20 KB")."\n"; echo makebyte("20 MB")."\n"; echo makebyte("20 GB")."\n"; echo makebyte("20")."\n"; KB20480 MB20971520 GB21474836480 0 Jeg ser at du hadde skrevet liten b i KB (kB). Annet enn det så stemmer alle verdiene. Lenke til kommentar
Gjest Slettet+6132 Skrevet 11. august 2005 Del Skrevet 11. august 2005 (endret) Hva er problemet, her gir det scriptet: echo makebyte("20 KB")."\n"; echo makebyte("20 MB")."\n"; echo makebyte("20 GB")."\n"; echo makebyte("20")."\n"; KB20480 MB20971520 GB21474836480 0 Jeg ser at du hadde skrevet liten b i KB (kB). Annet enn det så stemmer alle verdiene. Her også, men hvis du prøver med desimaltall blir det plutselig feil EDIT: Ser problemet, US standard bruker punktum på komma, og komma for å skille tusener. Nå funka det, takk EDIT: Slik blir funksjonen nå: function makebyte($input) { $split = split(" ", $input); $size = $split[0]; $size = str_replace(",", ".", $size); $prefix = $split[1]; if ($prefix == "kB") { $bytes = $size * 1024; } elseif ($prefix == "MB") { $bytes = $size * 1024 * 1024; } elseif ($prefix == "GB") { $bytes = $size * 1024 * 1024 * 1024; } else { $bytes = "0"; } return $bytes; } Endret 11. august 2005 av Slettet+6132 Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå