aprire sotto cartelle

io uso questo codice per aprire e mostrare il contenuto di una cartella:

$lang = "languages";

if ($handle = opendir("../$lang")) 

   {

   echo "Handle della directory: $handle<br />";

   while (false !== ($file = readdir($handle))) {

       echo "Cartella = $file<br />";

   }

   }

il suo lavoro lo fa e pure bene ma io devo vedere quello che c'è nelle subdirectory di languages[dato che ci metterò solo cartelle ] e di mettere il contenuto .php delle subdir in un select

come faccio sono 4 ore che ci giro intorno ma non ne vengo al capo help me :idiot:

poi in un'altra pagina [non collegata a questa cartella] devo mostrare l'URL della certalla contenente il file .php....

inviato 10 anni fa
Andrea Turso
Andrea Turso
86
modificato 10 anni fa
X 0 X

per prima cosa leggi tutto il contenuto della cartella e conserva in un array solo le sottocartelle contenute. Per farlo ti basta usare un codice simile a quello che hai riportato, basta usare la funsione is_dir() per verificare se l'elemento corrente è una directory ed in caso positivo inserirla nell'array

if(is_dir($file)) $cartelle[] = $file;

scorri poi il contenuto di queste cartelle, sempre con il codice che hai riportato, per recuperare i files .php

P.S.: fai attenzione ad escludere le cartelle . e .. quando chiedi l'elenco degli elementi presenti in una cartella, come mostrato nel secondo esempio del manuale ufficiale:

http://it2.php.net/manual/en/function.readdir.php

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

come metto le sub dir negli array?

<?php

error_reporting (E_ALL);

$lang = "languages";

if ($handle = opendir("../$lang")) 

   {

   while (false !== ($file = readdir($handle))) 

   {

       if ($file != "." && $file != "..") 

   {

          echo " $file";

   if(is_dir($file))

   {

   }

   

    }

   

   }

 

?>

ho fatto così.

Solo che se uso explode(" ",$file) nel while e poi faccio un print_r de quello che fa l'explode dice solo arraye non mete nulla negli array :(

risposto 10 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

All'inizio del codice devi creare l'array delle cartelle, vuoto:

$cartelle = array();

poi nel ciclo while:

if(is_dir($file))

{

   $cartelle[] = $file;

}

Tutto qui  ;)

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda