Come da titolo.
Come posso elencare tutti i files che sono presenti in una cartella (la stessa in cui la pagina viene eseguita)?
Facendo però delle eccezioni per alcuni file
Come da titolo.
Come posso elencare tutti i files che sono presenti in una cartella (la stessa in cui la pagina viene eseguita)?
Facendo però delle eccezioni per alcuni file
Ecco uno script per scrivere i nomi di tutti i file contenuti in una cartella. Me l'ha passato un po di tempo fa un amico...
Codice PHP:
<?
/*
se il file è nella cartella radice e vuoi fare la lista dei file di una cartella figlio devi
inserire il path, altrimenti non trova la cartella e ti da errore. Se inserisci il carattere "."
vuol dire che cercherà nella cartella dove è questo file. Se inserisci il carattere ".." cercherà nella cartella precedente, e così via come in dos.
*/
$path="c:/Programmi";
/*
Questa è la fuzione che apre la directory. Gli va specificato il path ovvimente. La funzione restitusce un valore booleano.
*/
$dir=opendir("$path");
if($dir){
//la funzione readdir() legge i file presenti nella cartella finché non sono finiti!!
while ($file = readdir($dir)){
//controllo di non leggere i file nulli o le directory precendenti
if($file != '..' && $file !='.' && $file !=''){
echo "<A HREF=$path/$file>$file</A>
"; //scrivo un link man mano che trovo file
}//fine if
}//fine while
closedir($dir);
clearstatcache();
}//fine if
else {echo "IMPOSSIBILE aprore la directory specificata!";}// in caso di errore appare questo!
?>
ciao
ci sarebbe un modo per dirgli di elencarli in ordine alfabetico e non di data?
Ma intendi visualizzare solo determinati file con una certa estensione? che so solo i .txt e i .jpg e non visualizzare gli altri con altre estensioni?? specifica meglio senno' piu' del codice che ti ho postato precedentemente non posso aiutarti..![]()
Al posto di stampare al volo un link al file, lo carichi ognuno in un array, ordini l'array con natsort(), quindi scorri l'array e stampi il risultato ordinato secondo un ordine naturale.
Questo significa che verrà rispettato l'ordine alfabetico e numerico, ma occhio: per natsort() 10.jpg sarà immediatamente dopo 1.jpg.
Spero di essere stato chiaro.
![]()
ciao
grazie ad entrambi per le rissposte
@frizzo
non conta l'estensione, faccio mostrare tutti i file in quella cartella, però adesso avrei la necessità di ordinarli alfabeticamente...
@alcio
sapresti darmi qualche indizio su come tradurre in codice quanto dici? Non sono un granchè esperto in ambito php e qui non ho neanche il Worx per cercare le sintassi...
Immagino che quanto dici vada al posto di echo "<A HREF=$path/$file>$file</A>
";
Non penso di dover inserire nell'array a mano tutti i file, perchè oltretutto la pagina è dinamica, ogni tanto vengono caricati dei file nuovi via ftp.
Forse c'è qualche funzione per caricare nell'array quanto generato dallo script
Ho provato sostituendo all' echo"<A HREF ecc ecc
questo codice, che anche se non crea i link ma mostra solo i testi, sarebbe stato un buon inizio, ma il risultato è identico
$elenco = array($file);
natsort($elenco);
while (list($elinva, $elco) = each ($elenco)){
echo "
$elco";
}
Così dovrebbe andare. Provalo però che io non l'ho fatto!Codice PHP:
<?php
$path="c:/cartella";
$dir = opendir("$path");
if($dir){
while ($file = readdir($dir)) {
if($file != '..' && $file !='.' && $file !=''){
$array_files = array("$file");
}//fine IF
} //fine WHILE
closedir($dir);
clearstatcache();
// ordini l'array in modo NATURALE
$array_files = natsort($array_files);
echo "<ul>";
foreach ($array_files as &$value) {
echo "[*]<a href=\"$path/$value\">$value</a>";
}
echo "[/list]";
} else {
echo "
<h1>Nessun file nella directory specificata!</h1>
";
}
?>
![]()
Parse error: syntax error, unexpected '&', expecting T_VARIABLE or '$' in /web/htdocs/......./home/test.php on line 26
cioè
foreach ($array_files as &$value) {