1. #1
    Avatar von Essah
    Registriert seit
    08.01.2012
    Beiträge
    279
    Thanked 69 Times in 45 Posts
    Blog Entries
    1

    Standard Größe einer Datei lesbar ausgeben

    Hallo! Ich habe eine Seite Programmiert wo man Dateien runterladen kann. Auf der Seite möchte ich hinschreiben wie groß die Datei ist bevor man sie herunterladen kann. Wenn ich mir das mit filesize("Datei.zip") hole bekomme ich ja Bytes. Ich habe es versucht eine Funktion zu machen die das je nach Größe besser lesbar ausgibt:

    PHP-Code:
    function MacheDateigroesseLesbar($Dateigroesse)
    {
        
    $lesbar "";
        if(
    $Dateigroesse 1000)
        {
            
    $lesbar round($Dateigroesse,1)."Byte";    
        }
        else 
        {
            
    $kilobytes $Dateigroesse/1000;
            if(
    $kilobytes 1000
            {
                
    $lesbar round($kilobytes1)."KiloBytes";    
            }
            else 
            {
                
    $megabytes $kilobytes/1000;
                if(
    $megabytes 1000
                {
                    
    $lesbar round($megabytes,1)."MegaByte";    
                }
            }
        }
        return 
    $lesbar;

    Es geht aber ich mache da ja eigentlich immer das selbe für jede Einheit. Ich frage mich ob man das vielleicht besser machen kann?
    PS: Bin noch Anfänger!

  2. #2
    Avatar von Baumstumpf
    Registriert seit
    04.12.2011
    Beiträge
    139
    Thanked 110 Times in 32 Posts

    Standard AW: Größe einer Datei lesbar ausgeben


  3. The Following User Says Thank You to Baumstumpf For This Useful Post:

    Essah (13.04.2014)

  4. #3
    Avatar von Essah
    Registriert seit
    08.01.2012
    Beiträge
    279
    Thanked 69 Times in 45 Posts
    Blog Entries
    1

    Standard AW: Größe einer Datei lesbar ausgeben

    Danke, aber das verstehe ich nicht ganz.
    PHP-Code:
    $bytes max($bytes0); 
    max soll den Maximalwert zurückgeben. Aber was macht das für einen Sinn den größeren Wert von der Dateigröße und 0 zu bekommen? Das ist doch immer die Dateigröße wenn die nicht 0 ist

    PHP-Code:
    $pow floor(($bytes log($bytes) : 0) / log(1024)); 
    log soll laut php.net der Logarithmus sein ich verstehe aber nicht was dieser Logarithmus sein soll

  5. #4
    Gelöschter Benutzer
    Gast

    Standard AW: Größe einer Datei lesbar ausgeben

    Das max() hat irgendwas damit zu tun, dass signed ints nur maximal ein Value von (2^31)-1 haben können, max returned mixed values (sprich float, double, ...); brauch man aber afaik nicht mehr (die Stackoverflow Antwort ist von 2010).

    Logarithmus ist ne ganz einfache Rechenoperation wie + und -, schau dir am besten im Internet irgendeine Seite an die das erklärt, kann hier im Forum glaube ich keiner besser.

    Wenn du eine simplere Funktion möchtest, ohne Logarithmen und co. damit du es evtl. verstehst:

    PHP-Code:
    function FormatBytes($bytes) {   
        
    $units = array('B''KB''MB''GB''TB');   
        
    $output $bytes;   $i 0;   
        while(
    $output 1024) {      
            
    $output = ($output 1024);      
            
    $i++;  
        }

        return 
    sprintf('%s %s'$output$units[$i]);


  6. The Following User Says Thank You to Gelöschter Benutzer For This Useful Post:

    Essah (19.04.2014)

Ähnliche Themen

  1. C# Gerundete Zahl ausgeben
    Von Gast78236 im Forum Andere
    Antworten: 5
    Letzter Beitrag: 06.11.2013, 23:04
  2. Hyperlink einer HTML Datei?
    Von x BoooM x im Forum HTML
    Antworten: 2
    Letzter Beitrag: 08.11.2012, 17:49
  3. Antworten: 0
    Letzter Beitrag: 12.04.2012, 11:05
  4. WinXP \$Secure ist beschädigt und nicht lesbar - CHKDSK.
    Von Bazs im Forum Windows
    Antworten: 2
    Letzter Beitrag: 11.04.2012, 21:05
  5. [PHP] Geladene Bilder ausgeben
    Von Gelöschter Benutzer im Forum PHP
    Antworten: 1
    Letzter Beitrag: 03.03.2012, 16:50
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.