A volte sorge la necessità di scrivere in PHP un codice che mostri la lista dei file e dei cataloghi contenuti in una directory… A quale scopo? Fondamentalmente, per non scrivere e aggiornare manualmente troppi elenchi (forse dovendoli pure linkare).
Oggi condivido, senza troppi commenti, con i lettori ben cinque metodi validi.
Il metodo № 1. Visualizzare la lista dei file con la stessa estensione (per esempio *.php):
$filelist = glob("*.php");
foreach ($filelist as $filename){
echo $filename." e le sue dimnsioni: ".filesize($filename)." byte<br>";
}
È possibile visualizzare la lista dei file con qualsiasi estensione: è sufficiente sostituire php con quella desiderata nella prima riga del codice appena visto.
Inoltre, per esempio, è possibile visualizzare la lista dei file con i nomi parzialmente uguali. Per farlo, indicare nella funzione glob() la parte comune: glob("xyz*.doc") cercherà quindi i file doc con i nomi che iniziano per xyz.
Il metodo № 2. Visualizzare tutti i file della cartella corrente
$path = ".";
$filelist = array();
if($handle = opendir($path)){
while($entry = readdir($handle)){
echo $entry."<br>";
}
closedir($handle);
}
La cosa in più da sapere sul codice già facile è la possibilità (opzionale) di indicare il nome di una cartella al posto del punto nella espressione $path="." (quindi per vedere la lista dei file della cartella files scrivere $path="files").
Il metodo № 3. L’uso della funzione scandir()
$path = scandir("files");
foreach($path as $k){
echo $k."<br>";
}
La funzione scandir() sa solamente interpretare il percorso verso il «posto» dove cercare i file. Leggendo l’array è possibile avere l’elenco dei file e delle cartelle. Per cercare nella stessa cartella della funzione indicare scandir(".") – con il punto.
Il metodo № 4. L’uso di una funzione con il ciclo for
function nav($dir){
if(is_dir($dir)){
$files = scandir($dir);
array_shift($files); // удаляем из массива '.'
array_shift($files); // удаляем из массива '..'
for($i=0; $i<sizeof($files); $i++){
$len = $files[$i];
echo $len."<br>";
}
}
}
$dir = "files";
nav($dir);
Potete notare anche voi che il nome della directory è contenuto nella variabile dir. Dall’array vengono eliminati »." e «..».
Il metodo № 5. Quello ritenuto il migliore da molti programmatori.
$dir = "files";
if($handle = opendir($dir)){
while(false !== ($file = readdir($handle))) {
if($file != "." && $file != ".."){
echo $file."<br>";
}
}
}
Potete notare anche voi che il nome della directory è contenuto nella variabile dir.
Ma in realtà non esistono i metodi migliori. Esistono i metodi più o meno adatti alle necessità concrete del momento.
Scegliete pure il metodo che vi sembra più facile da adattare al proprio progetto.



RSS del sito

