Visualizzazione dei risultati da 1 a 7 su 7

Discussione: filesize in Kb?

  1. #1

    filesize in Kb?

    Ciao a tutti ho visto altre discussioni a riguardo ma nn capisco dove sbaglio



    ho questo codice


    codice:
    $filenameDim = $record['file']; // prendo il file dal db
    $dim=filesize($filenameDim); // appoggio la dimensione del file in una variabile
    echo $dim // stampo la dimensione

    vorrei la misura in kb con solo un numero dopo la virgola

    20,4 kb

    100,0 kb

    340,4,kb


  2. #2
    Utente di HTML.it L'avatar di pgm
    Registrato dal
    Apr 2002
    Messaggi
    1,281
    ciao

    si potrebbe fare così:

    filesize ti ridà il size in bytes. allora sarà necessario un ciclo che divida il size per 1024 fino a che sia divisibile per 1.
    Codice PHP:
    function bytes_to_kb($size){
       
    $i=0;
       while((
    $size/1024)/1){
          
    $size=$size/1024;
          
    $i++;
       }
       
    //uso il round per arrotondare il size
       //uso precisione al 1° num dopo la virgola perchè ci interessa solo quello
       
    $size round($size,1);
       
    //formatto il size a 1 numero dopo la virgola
       
    $size number_format($size,1,",",".");
       return 
    $size;
    }

    echo 
    bytes_to_kb(filesize("tuo_file")); 
    non è sicuramente una funzione ottimizzata ( )però dovrebbe andare per il tuo scopo

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: filesize in Kb?

    Originariamente inviato da Julius86
    vorrei la misura in kb con solo un numero dopo la virgola
    Molto semplicemente con:

    codice:
    $size = @filesize ("...nomefile...");
    
    $str = sprintf ("%.1f kb", $size / 1024.0);
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  4. #4
    Utente di HTML.it L'avatar di pgm
    Registrato dal
    Apr 2002
    Messaggi
    1,281

    Re: Re: filesize in Kb?

    Originariamente inviato da andbin
    Molto semplicemente con:

    codice:
    $size = @filesize ("...nomefile...");
    
    $str = sprintf ("%.1f kb", $size / 1024.0);
    eccoci. lo sapevo che c'era un'altro modo


  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    L'unica cosa è che normalmente il separatore dei decimali è il punto. Se si vuole la virgola si può impostare il locale italiano:

    setlocale(LC_ALL, 'it');
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  6. #6
    grazie a tutti x l'aiuto !!!

  7. #7
    Questa è una funzioncina che ho fatto un po' di tempo fa!
    Molto semplice! Puoi decidere il numero di cifre da visualizzare dopo il separatore ed anche impostare un separatore personalizzato

    Codice PHP:
    <?PHP
    function formatSize$size $precision $separator ',' ) {
        
    // Sappiamo che 1024 byte formano un kilobyte;
        // 1024 kilobyte un MB ;
        // 1024 MB sono uguali a 1 GB e 
        // 1024 GB sono pari a un TB. Vediamo come possiamo
        // sfruttare questa info sapendo che il
        // size passato è espresso in Byte
        
        // Per prima cosa creiamo un array con le
        // unità di misura delle dimensioni
        
    $sizes[] = 'bytes' ;
        
    $sizes[] = 'KB' ;
        
    $sizes[] = 'MB' ;
        
    $sizes[] = 'GB' ;
        
    $sizes[] = 'TB' ;
        
        
    // Ora con un for ci avvicianiamo
        // all'unità di misura più grande
        
    $i ;
        while( 
    $size >= 1024 ) {
            
    $size $size/1024 ;
            
    $i++ ;
        }
        
        return 
    str_replace'.' $separator round$size $precision ) ) . ' ' $sizes[$i] ;
    }

    echo 
    formatSize3733644 , ,'.' ) ;
    ?>
    ATTENZIONE
    La funzione non recupera le dimensioni del file! Le stesse vanno passate come argomento alla funzione! Ciao!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.