Visualizzazione risultati 1 fino 12 di 12

Discussione: Ottenere files presenti in una cartella

  1. #1
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito Ottenere files presenti in una cartella

    Come posso tramite php ottenere l'elenco dei files presenti in una determinata cartella sul server?

  2. #2
    Guest

  3. #3
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Ah ma non mi riferivo a nulla di grafico, semplicemente mi sembrava che ci fosse un comando php che lista tutti i file presenti in una cartella, mi sbaglio?

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da tryhere Visualizza messaggio
    Ah ma non mi riferivo a nulla di grafico, semplicemente mi sembrava che ci fosse un comando php che lista tutti i file presenti in una cartella, mi sbaglio?
    Se rispondi così vuol dire che non hai neppure letto di cosa si tratta.
    Quella indicata è una classe che enumera il contenuto di una cartella.

    Vuoi scriverti qualcosa tu? Dai un'occhiata alla documentazione ufficiale di PHP, in particolare la funzione glob.

  5. #5
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Certo che ho letto di cosa si tratta ma non mi serviva una classe già pronta ma soltanto il nome di questa funzione glob che mi ricordavo di aver già letto da qualche parte ma non trovavo :)
    Grazie!!

  6. #6
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Facendo qualche prova mi sembra di capire che glob ordini i files che trova in ordine alfabetico, giusto?
    Volevo sapere se è possibile ordinarli in ordine crescente di data di upload nella cartella stabilita o in caso negativo quali sono i possibili criteri di ordinamento...

  7. #7
    Guest

    Predefinito

    Usando un po google, in particolar modo questa discussione, ottieni un po' di informazioni.

    Una possibile soluzione potrebbe essere quindi:

    Codice PHP:
    <?php
    $lista
    = glob("*.*");
    $i = 0;

    echo
    "<pre>\n";
    foreach(
    $lista as $file)
    {
    $filename[$i] = $file;
    $filetime[$i] = filemtime($file);
    $i++;

    echo
    "{$file} \tmodified: " . date("d/m/Y H:i:s", filemtime($file)) . "\n";
    }
    echo
    "</pre>\n";

    echo
    "<hr />\n";

    array_multisort($filetime, SORT_ASC, SORT_NUMERIC, $filename);

    echo
    "<pre>\n";
    for(
    $j = 0; $j < $i; $j++)
    {
    echo
    "{$filename[$j]} \tmodified: " . date("d/m/Y H:i:s", filemtime($filename[$j])) . "\n";
    }
    echo
    "</pre>\n";
    ?>
    in sostanza, recuperi un array tramite glob.
    da questo ti crei due array (per forza di cose dello stesso ordine), uno con i nomi dei files e l'altro con le relative dimensioni. Poi ordini tramite array_multisort per data e stampi il tutto. L'esempio stampa prima in ordine alfabetico, e successivamete in ordine di data.

  8. #8
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Grazie mille!
    C'è un'unica cosa che vorrei leggermente modificare...filemtime ritorna la data dell'ultima modifica del file, è possibile invece ottenere la data in cui il file è stato inserito nella cartella in questione?
    Perchè se ad esempio sul mio sito ho tutti file creati l'anno scorso e oggi carico un file creato lo scorso anno questo viene considerato "il più vecchio" mentre io lo vorrei considerare "il più nuovo".

  9. #9
    Guest

    Predefinito

    La data dell'ultima modifica è proprio la data dell'upload.

  10. #10
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Ho provato ma se taglio un file presente nella cartella e lo incollo in un'altra cartella, poi lo ritaglio e lo reincollo nella cartella in questione, questo non diventa l'ultimo della lista ma rimane nella posizione che occupava prima...come mai?

  11. #11
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Rettifico, la data dell'ultima modifica non è la data dell'upload...è la data in cui è stato modificato l'ultima volta il contenuto del file. C'è un modo invece per ottenere la data dell'upload?

  12. #12
    L'avatar di darkwolf
    darkwolf non è connesso Salvatore Noschese
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,558

    Predefinito

    mi viene in mente che dovresti salvare da qualche parte il valore iniziale e lasciarlo invariato (usare dunque una sorta di database, magari anche semplici file di testo), o inserire i file tramite uno script che li rinomini accodando filemtime e dunque prelevare il valore dal nome del file (questa soluzione la vedo più semplice del database, ma meno pulita e non valida se fai l'upload via ftp).

Regole di scrittura

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