- Home
- Categorie
- Coding e Sistemistica
- PHP
- [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.
-