- Home
- Categorie
- Coding e Sistemistica
- Coding
- [Tutorial] Esplorare le cartelle
- 
							
							
							
							
							Prova cosi: 
 [php]
 <?php
 // Prendo dalla variabile get la cartella che voglio esplorare
 $c = (isset($_GET['c'])) ? $_GET['c'] : '';// Nome della cartella 
 $car = 'cartella/'.$c.'/';function GetFile($car) 
 {
 global $c;
 // Se non è un cartella esco
 if(!is_dir($car))
 return 0;// Opendir è la funzione per aprire la cartella 
 $handle = opendir($car);// Ciclo la cartella 
 while (false !== ($files = readdir($handle)))
 {
 // Stampo i file
 if ($files != '.' && $files != '..')
 {
 if(is_dir($car.$files))
 $vc[] = $files;
 else
 $vf[] = $files;
 }} 
 // Se sono in una cartella mostro il pulsante per andare alla cartella principale
 if($c != '')
 echo '<a href="manager.php">Pagina Principale</a><br>';// Stampo le cartelle e i file echo 'Catelle:<br>'; for($i=0; $i<count($vc); $i++) echo '<a href="manager.php?c='.$c.'/'.$vc*.'">'.$vc*.'</a><br>'; echo 'File:<br>'; for($i=0; $i<count($vf); $i++)if(substr($vf*, -3, 3) == 'txt') 
 echo '<a href="'.$car.$vf*.'">'.substr($vf*,0,strlen($vf*)-4).'</a><br>';
 }// Richiamo La funzione 
 GetFile($car);
 ?>
 [/php]
 
- 
							
							
							
							
							
Ti ringrazio davvero molto Funziona perfettamente Grazie Thedarkita davvero Sto cercando di imparare il php Ma non essendo il mio primo lavoro... Non ho tantissimo tempo.. Ci sentiamo continuo i miei test Ciao grazie ancora 
 
- 
							
							
							
							
							
Ciao Thedarkita Stavo stavo testando il codice, che va alla grande come ti dicevo, ma mi sono accorto che i file non sono in ordine alfabetico... Stavo scervellandomi per ordinarlo o in ordine alfabetico oppure per uultima modifica mi puoi dare un ultima mano? Se puoi ti ringrazio molto. Buona giornata. 
 
- 
							
							
							
							
							
Prova così: [PHP] <?php 
 // Prendo dalla variabile get la cartella che voglio esplorare
 $c = (isset($_GET['c'])) ? $_GET['c'] : '';// Nome della cartella 
 $car = 'cartella/'.$c.'/';function GetFile($car) 
 {
 global $c;
 // Se non è un cartella esco
 if(!is_dir($car))
 return 0;// Opendir è la funzione per aprire la cartella 
 $handle = opendir($car);// Ciclo la cartella 
 while (false !== ($files = readdir($handle)))
 {
 // Stampo i file
 if ($files != '.' && $files != '..')
 {
 if(is_dir($car.$files))
 $vc[] = $files;
 else
 $vf[] = $files;
 }} // imposto l'ordinamento alfabetico ai contenuti degli array 
 sort($vc);
 sort($vf);// Se sono in una cartella mostro il pulsante per andare alla cartella principale if($c != '') echo '<a href="manager.php">Pagina Principale</a><br>'; // Stampo le cartelle e i file echo 'Catelle:<br>'; for($i=0; $i<count($vc); $i++) echo '<a href="manager.php?c='.$c.'/'.$vc*.'">'.$vc*.'</a><br>'; echo 'File:<br>'; for($i=0; $i<count($vf); $i++)if(substr($vf*, -3, 3) == 'txt') 
 echo '<a href="'.$car.$vf*.'">'.substr($vf*,0,strlen($vf*)-4).'</a><br>';
 }// Richiamo La funzione 
 GetFile($car);
 ?> [/PHP]In sostanza ho adoperato la funzione sort() per ordinare gli array che accumulano i nomi delle cartelle e dei files presenti nella directory specificata.  
 
- 
							
							
							
							
							
Ciao grazie molte. Si va tutto ok tranne una cosa: alla fine quando ti trovi nell'ultima directory e c'è la lista dei file, spunta l'errore: Warning: sort() expects parameter 1 to be array, null given in perchè lui non trova più directory essendoci solo file... Sto cercando di rimediare Grazie comunque. 
 
- 
							
							
							
							
							
Puoi ovviare un paio modi: - Definisci i due array all'inizio della funzione ( es: $vc = array(); )
- Fai un bel controllo per entrambi del tipo: if (is_array($vc)) sort($vc);
 Prova e fammi sapere  
 
- 
							
							
							
							
							
Grazie si adesso è davvero tutto ok. Scusami ma sto imparando il php di sana pianta, visto che tutti i miei siti li ho creati con buoni script per carità e vanno bene però ho l'esigenza di imparare il php il più possibile.... Adesso ero curioso su come ordinarli per data di modifica o di upload... quindi stavo cercando di imparare il comando filemtime combinato con il sort Comunque grazie ancora ... 
 
- 
							
							
							
							
							
Ciao scusate ma avrei bisogno di un ulteriore aiuto. È tutto il giorno che ci sbatto la testa ma non riesco ad ottenere un' altra funzione. Sto cercando di crearmi un un file.php che legga, come il precedente, i file in tutte le cartelle e sottocartelle 
 ,
 ma che mi visualizzi gli ultimi 10 file uploadati da me,o comunque modificati da poco. Sto studiando i vari comandi sort e filemdate ma per ora pochi risultati... Se mi date ancora qualche dritta mi fate un grosso piacere. In questi anni ho fatto solo il grafico, ed è da poco che mi cimento con il php. Grazie ciao. (credo che la punteggiatura sia ok ora, chiedo scusa per il precedente messaggio) 
 
- 
							
							
							
							
							Ciao a tutti. 
 Il sistema funziona perfettamente. L'unica cosa che non riesco a fare è realizzare un link alla cartella di livello superiore.
 Se, ad esempio, nella root ho cartella 1, al cui interno si trova cartella 2, ed entro in quest'ultima, come faccio a tornare a cartella 1? Il tutorial prevede un link per tornare alla pagina principale ma non per "uscire" dall'ultima cartella in cui si è entrati.
 Grazie.
 
- 
							
							
							
							
							Ciao Thedarkita; Mi servirebbe un tuo aiuto a risolvere un grosso problema. So che il post è vecchio ma spero che mi risponderai ugualmente. Ho provato il tuo codice, di elenco cartelle e file. Solo che mi servono due modifich e sono le seguenti: - 
Elencare directory tutte con tutre le estensioni; 
- 
Elencare le sottocartelle con tutti i file all'interno delle cartellle e sottocartelle 
- 
Debbo inserire il risultato della ricerca in un db. 
 Mi puoi aiutare per favore ???? Sono disperato sono mesi che sto cercando inutilmente soluzioni a destra e a manca. Grazie in anticipo Il codice è il seguente: [PHP] <?php// Prendo dalla variabile get la cartella che voglio esplorare 
 $c = (isset($_GET['c'])) ? $_GET['c'] : '';// Nome della cartella 
 $car = 'c://'.$c.'/';function GetFile($car) 
 {
 global $c;
 // Se non è un cartella esco
 if(!is_dir($car))
 return 0;// Opendir è la funzione per aprire la cartella 
 $handle = opendir($car);// Ciclo la cartella 
 while (false !== ($files = readdir($handle)))
 {
 // Stampo i file
 if ($files != '.' && $files != '..')
 {
 if(is_dir($car.$files))
 $vc[] = $files;
 else
 $vf[] = $files;
 }} 
 // Se sono in una cartella mostro il pulsante per andare alla cartella principale
 if($c != '')
 echo '<a href="manager.php">Pagina Principale</a><br>';// Stampo le cartelle e i file echo 'Catelle:<br>'; for($i=0; $i<count($vc); $i++) echo '<a href="manager.php?c='.$c.'/'.$vc*.'">'.$vc*.'</a><br>'; echo 'File:<br>'; for($i=0; $i<count($vf); $i++) echo $vf*.'<br>';} // Richiamo La funzione 
 GetFile($car);
 ?>
 </body>
 </html>[/PHP] Ah, un ultima cosa. La sottoglineatura non mi servirebbe in quanto devo leggere i file all'interno di ogni cartella. Spero di essermi spiegato al meglio. 
 
-