Visualizzazione risultati 1 fino 18 di 18

Discussione: [PHP] Dimensione File

  1. #1
    Guest

    Post [PHP] Dimensione File

    Ciao a tutti, ho fatto una ricerca ma non mi ha aiutato a trovare niente di nuovo..
    Per trovare la dimensione di un file io uso:
    http://it2.php.net/filesize
    Codice PHP:
    echo filesize($file);
    E così spunta
    12035 (Bytes)
    Ma io vorrei che questa quando supera 1 Kb venisse mostrata ad es:
    1024 Bytes -> 1 Kb
    Ma non solo in Kb anche in Mb e Gb..
    Come posso fare?
    Grazie.Ciao Davide! ^^
    Ultima modifica di sIM : 08-04-2008 alle ore 22.30.54

  2. #2
    L'avatar di darkwolf
    darkwolf non è connesso Super Moderatore
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,552

    Predefinito

    Vedi questo script (ne parlavamo ieri): http://dreadnaut.altervista.org/prog...st-esempio.php
    qui c'è una funzione:
    Codice:
     function makeSize($size) {
       $units = array('B','KB','MB','GB','TB');
       $u = 0;
       while ( (round($size / 1024) > 0) && ($u < 4) ) {
         $size = $size / 1024;
         $u++;
       }
       return (round($size,2) . " " . $units[$u]);
     }
    credo sia questo ciò che cerchi
    Ultima modifica di darkwolf : 08-04-2008 alle ore 22.37.49
    » Salvatore Noschese - L'AltroWeb | Seguimi su: facebook | twitter | Google+
    # Che aspetti? Unisciti alla community! Tanti nuovi gruppi ti aspettano


  3. #3
    Guest

    Predefinito

    Si..ci avevo provato!
    Ma devo usare:
    Codice PHP:
    $filemax = $file;
    function
    makeSize($size) {
    $units = array('B','KB','MB','GB','TB');
    $u = 0;
    while ( (
    round($size / 1024) > 0) && ($u < 4) ) {
    $size = $size / 1024;
    $u++;
    }
    return (
    round($size,2) . " " . $units[$u]);
    }
    echo
    makeSize($filemax);
    ????..Grazie! Ciao Davide ^^

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,252

    Predefinito

    sconforto filesize()
    Codice PHP:
    $nomefile = "deossiribonucleico.txt";
    $dimensione = filesize($nomefile);

    echo
    makeSize($dimensione);
    Ultima modifica di dreadnaut : 09-04-2008 alle ore 18.52.17

  5. #5
    Guest

    Predefinito

    Niente da fare!
    Codice PHP:
    <?php

    // Dimensione

    echo "<td class=\"s\">";




    if(
    $file!="." && $file!=".." && substr($file, -4) != ".php") {

    function
    makeSize($size) {
    $units = array('B','KB','MB','GB','TB');
    $u = 0;
    while ( (
    round($size / 1024) > 0) && ($u < 4) ) {
    $size = $size / 1024;
    $u++;
    }
    return (
    round($size,2) . " " . $units[$u]);
    }

    $filemax = $file;

    $dimensione = filesize($filemax);

    echo
    makeSize($dimensione);
    }
    echo
    "</td>";
    ?>
    Errore:
    Fatal error: Cannot redeclare makesize() (previously declared in /membri/sim/file/dw/files.php:83) in /membri/sim/file/dw/files.php on line 83
    Grazie! Ciao...

    Edit: Ora che riguardo..Si vede la dimensione del primo file..non degli altri! ^^
    Ultima modifica di sIM : 09-04-2008 alle ore 19.14.36

  6. #6
    Guest

    Predefinito

    Hai messo la funzione in un ciclo (for o while che sia), mettila prima del ciclo, fuori da esso

  7. #7
    Guest

    Predefinito

    Eh?...x favore parla in italiano e se è possibile facendo esempi! ^^

  8. #8
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,252

    Predefinito

    Fatal error: Cannot redeclare makesize() (previously declared in /membri/sim/file/dw/files.php:83) in /membri/sim/file/dw/files.php on line 83
    e sia questo l'ultimo pm che ricevo per avvisarmi che hai risposto ad un thread e che devo guardarlo. Al prossimo ti blocco e non ti leggo mai più

  9. #9
    Guest

    Predefinito

    Scusami ma intendi fare così:
    Codice PHP:
    function makeSize($size) {
    $units = array('B','KB','MB','GB','TB');
    $u = 0;
    $size = $size / 1024;
    $u++;
    while ( (
    round($size / 1024) > 0) && ($u < 4) ) {
    }
    return (
    round($size,2) . " " . $units[$u]);
    }
    ..perchè da errore!..
    Grazie! Ciao Davide...

    PS: Scusami se ti invio PM, ma non so che fare! ^_^
    Poi, mica sei obbligato a venire! ;)

  10. #10
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Provo a risponderti per somme righe, visto che sembra tu non sappia nemmeno come si usano le funzioni personalizzate... ti consiglio di procedere così:
    - inserisci la funzione makeSize() (il codice del post #2 mi sembra corretto) IN TESTA alla tua pagina PHP, e solo lì (non serve ricopiarla da altre parti)
    - quando hai bisogno di elaborare la dimensione del file, ti basta richiamare la funzione: ad esempio, se devi stampare una dimensione formattata di un file scriverai echo makeSize ($size);

    Stammi bene...
    Ultima modifica di dementialsite : 11-04-2008 alle ore 13.42.29 Motivo: Correzione... thx 2 dreadnaut :-D
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  11. #11
    Guest

    Predefinito

    Ok, Grazie..questo è risolto..ma ora come faccio:
    Quando il giorno è meno di 10 voglio che spunti uno 0 prima del numero es:
    2/04/2008 -> 02/04/2008
    Ecco il codice:
    Codice PHP:
    <?php

    // Data ultima Modifica

    echo "<td class=\"m\">";
    if(
    $file!="." && $file!=".." && substr($file, -4) != ".php") {
    $filedata = $file;

    echo
    date ("j/m/Y h:i", filemtime($filedata)); // 20/08/1325 15:25
    }
    echo
    "</td>";

    ?>
    Grazie!...
    Ciao Davide! ^_^

  12. #12
    Guest

    Predefinito

    Se non ho capito male devi sostituire

    Codice PHP:
    date ("j/m/Y h:i", filemtime($filedata)
    con
    Codice PHP:
    date ("d/m/Y h:i", filemtime($filedata)
    nel caso ti serva fare altre modifiche qui trovi la descrizione della funzione date con una lista dei valori per formattare le date : http://it.php.net/date

  13. #13
    Guest

    Predefinito

    Ok, Grazie!
    Ma ora come faccio a cancellare un file tramite bottone? ^^
    Codice PHP:
    <?php

    echo "<td class=\"a\">";
    if(
    $file!="." && $file!=".." && substr($file, -4) != ".php") {
    $filecan = $file;

    echo
    "
    <form method=\"POST\" name=\"formcancella\">
    <input type=\"submit\" value=\"Cancella File...\" onclick=\""
    ; echo unlink($filecan); echo "\" name=\"cancella\" />
    </form>
    "
    ;
    if (isset(
    $_POST["cancella"])) {
    echo
    "Cancellato: <b>$filecan</b>";;
    echo
    "<br /><a href=\"files.php\">Carica Pagina</a>...";
    }
    }

    echo
    "</td>";
    echo
    "</tr>";
    }

    // Chiude il File!
    closedir($dir_handle);
    ?>
    ...Grazie!..Ciao Davide ^_^

  14. #14
    Guest

    Predefinito

    se vuoi eliminare file devi usare la funzione unlink(file_da_eliminare).

    la guida la trovi qui : http://it2.php.net/manual/it/function.unlink.php

  15. #15
    Guest

    Predefinito

    Infatti c'è...ma si cancellano TUTTI i file! :(
    Codice PHP:
    echo "<form method=\"POST\" name=\"formcancella\">
    <input type=\"submit\" value=\"Cancella File...\" onclick=\""
    ; echo unlink($filecan); echo "\" name=\"cancella\" />
    </form>
    E quindi il bottone non funziona bene! :(

  16. #16
    Guest

    Predefinito

    emm unlink è una funzione php che quando viene richiamata elimina il file che gli viene dato.

    se tu la richiami quando generi il codice del bottone lui le cancella subito.

    devi fare un bottone che punta alla pagina php che esegue l'eliminazione del file e da li eseguire l'unlink.

    quindi una cosa del genere :

    Codice PHP:
    echo "
    <form method=\"POST\" name=\"cancella_
    $filecan\" action=\"elimina.php?id=$filecan\">
    <input type=\"submit\" value=\"Cancella File...\" name=\"cancella\" />
    </form>
    "
    ;
    e piu una pagine elimina.php (o come la vuoi chiamare) che tramite l'id elimina il file

  17. #17
    Guest

    Predefinito

    Ok, Grazie! ^^..
    Ora perchè quando faccio la data non funziona?
    Esempio:
    14 aprile 2008 -> 14 Aprile 2008
    Codice PHP:
    setlocale(LC_TIME, 'it_IT'); // Lingua = Italiana
    $data = strftime("%e %B %G"); // 31 gennaio 9999
    $data = ucfirst($data); // 31 Gennaio 9999
    echo $data;
    In pratica la funzione ucfirst() serve a modificare la prima lettera maiuscola!:
    io sono -> Io sono
    Grazie!...Ciao Davide ^^
    Ultima modifica di sIM : 14-04-2008 alle ore 22.40.23

  18. #18
    Guest

    Predefinito

    Ho dato una veloce lettura delle guide di php in riferimento alle funzioni usate :

    setlocale
    strftime

    Se non ho capito male alla funzione strftime devi passare anche il timestrap, quindi cosi dovrebbe andare:

    Codice PHP:
    setlocale(LC_TIME, 'it_IT');
    $data = strftime("%A %d %B %Y" , time() );
    $data = ucfirst($data);
    echo
    $data;
    Ultima modifica di ilpcportal : 15-04-2008 alle ore 00.28.02

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •