Visualizzazione risultati 1 fino 11 di 11

Discussione: Problema disk_total_space()

  1. #1
    Guest

    Predefinito Problema disk_total_space()

    Sto cercando di utilizzare disk_total_space per ottenere la dimensione totale del sito, ma sto avendo qualche problema... il pezzo di codice è questo
    Codice PHP:
    <?php
    define
    ("SITE_ROOT","/membri2/ptm/");
    $sitesize=disk_total_space(SITE_ROOT)/1024/1024; //converto in Mb
    ?>
    Andando a stampare $sitesize ottengo che la dimensione è di 189275.15234375 Mb... Forse sto sbagliando qualcosa?
    Ultima modifica di ptm : 11-12-2009 alle ore 20.41.10

  2. #2
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Come scritto:
    disk_total_space()
    Data una stringa contenente una directory, questa funzione restituirà il numero totale di byte del filesystem o della partizione corrispondente.
    Ultima modifica di andreafallico : 11-12-2009 alle ore 18.06.40

  3. #3
    Guest

    Predefinito

    Sinceramente mi sembra strano che funzioni perché imposti la costante SITE_URL ma nella funzione usi la costante SITE_ROOT.

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da andreafallico Visualizza messaggio
    Come scritto:
    disk_total_space()
    Data una stringa contenente una directory, questa funzione restituirà il numero totale di byte del filesystem o della partizione corrispondente.
    Grazie mille! Quindi per calcolare le dimensioni dovrei sommare tutte le dimensioni individuali dei file?
    Citazione Originalmente inviato da alessandro1997 Visualizza messaggio
    Sinceramente mi sembra strano che funzioni perché imposti la costante SITE_URL ma nella funzione usi la costante SITE_ROOT.
    Si, errore mio... perchè la definizione delle costanti si trovava in un altro file e postando solo la riga con una costante non definita mi sembrava un po' senza senso, allora ho fatto un copia-incolla, ma della riga sbagliata

  5. #5
    Guest

    Predefinito

    Ho provato su php.net (che poi è solo la versione inglese del messaggio di andreafallico) ma non sono particolarmente precisi al riguardo e io non mi sono mai interessato all'argomento...

  6. #6
    Guest

    Predefinito

    Già... anche io prima di postare ho cercato là, ma prima dicono:
    Returns the total size of a directory
    e poi successivamente come descrizione danno
    Given a string containing a directory, this function will return the total number of bytes on the corresponding filesystem or disk partition.
    E la cosa mi è sembrata un po' ambigua... Ma a quanto pare viene proprio calcolata la dimensione della partizione...

  7. #7
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Io l'ho provato in locale e ritorna la dimensione totale dell'HDD.
    Puoi vedere anche nella mia firma "PHPinfo" che non ritorna la dimensione del mio spazio web.

  8. #8
    Guest

    Predefinito

    Si, per quello anche a me fa così... ho risolto facendo la somma della dimensione di tutti i file in ogni directory...

  9. #9
    Guest

    Predefinito

    Spero che tu abbia considerato anche l'eventualità in cui nella directory ci sia un'altra directory, perché è abbastanza facile con una funzione ricorsiva strutturata così:
    Codice PHP:
    <?php
    function directory_size($directory)
    {
    if(!
    is_dir($directory))
    return
    false;

    $op = opendir($directory);
    $size = 0;

    while(
    false !== ($read = readdir($directory)))
    {
    if(
    $file == '.' || $file == '..' || $file == '.htaccess')
    continue;

    if(
    is_dir("{$directory}/{$read}"))
    $size += directory_size("{$directory}/{$read}");
    else
    $size += filesize($read);
    }

    return
    $size;
    }
    ?>
    Usa questa
    Ultima modifica di alessandro1997 : 12-12-2009 alle ore 01.04.55

  10. #10
    Guest

    Predefinito

    Si, si... avevo già strutturato una funzione ricorsiva di questo tipo... in ogni caso grazie mille per l'aiuto

  11. #11
    Guest

    Predefinito

    Di niente, figurati

Regole di scrittura

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