Come posso tramite php ottenere l'elenco dei files presenti in una determinata cartella sul server?
Come posso tramite php ottenere l'elenco dei files presenti in una determinata cartella sul server?
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.
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!!
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...
Usando un po google, in particolar modo questa discussione, ottieni un po' di informazioni.
Una possibile soluzione potrebbe essere quindi:
in sostanza, recuperi un array tramite glob.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";
?>
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.
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".
La data dell'ultima modifica è proprio la data dell'upload.
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?
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?
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).