/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Liste mapper og undermapper
Fra : christoffer@buur.inf~


Dato : 21-02-08 02:28

Hej, jeg har for en lille uges tid siden skrevet om emnet, men
problemet er stadig ikke blevet løst, og jeg har ændret på koden siden
da...
Først hvad jeg ende med som slut resultat..
Et eksempel på en sti kunne være
fil > Workshop 1 > Cykel
fil > Workshop 3 > Natur

Måden det skal fremstå på, vil så være en select, med workshopmappen
som opt-group og workshopmappens-undermapper som options..

Jeg har fået skramlet mig sammen til noget kode der finder alle
mapperne i workshop 1, men den udskriver hverken workshop2, 3 eller 4,
eller undermapper til de mapper..

Hvorfor stopper den efter workshop1 ?

Koden er:

function visMappen($dir) {

$d = dir($dir);
while (false !== ($file = $d->read())) {
if ($file != '.' && $file != '..') {
if (is_dir($dir ."/". $file)) {
      echo "<br>$file <br>"; // udskriver undermappenavn i "fil"

      /// sti til undermappen
$path = $dir ."/". $file;

      $dir = opendir($path); //læser filer/mapper i $file, fil/$path/
      while ($file = readdir($dir)) {
      if($file != "." && $file != ".." ) {
      echo "<a href=\"$path/$file\">$file</a><br>";
         } //afslutter file !=".".....

      } // afslutter while

} //afslutter if (is_dir($dir ."/". $file))

} // afslutter if ($file != '.' && $file != '..')

} // afslutter while

$d->close();

} //afslutter funktion


$mydir = "fil";

visMappen($mydir);

 
 
Bertel Lund Hansen (21-02-2008)
Kommentar
Fra : Bertel Lund Hansen


Dato : 21-02-08 12:56

christoffer@buur.info skrev:

> Jeg har fået skramlet mig sammen til noget kode der finder alle
> mapperne i workshop 1, men den udskriver hverken workshop2, 3 eller 4,
> eller undermapper til de mapper..

En gennemtrævling af en mappestruktrur laves nemmest med en
rekursiv funktion.

function visMappen ($mappe) {
   $mappe åbnes for læsning
   sålænge der stadig er indgange i $mappe {
      $navn=hent første indgang i $mappe
      display($navn)
      hvis ($navn er et dir) visMappen($navn)
   }
}

visMappen($basismappe);

I øvrigt begår du den fejl i din kode at lade funktionen modtage
en variabel $dir og senere inden i funktionen give den en ny
værdi. Det er muligt at det ikke giver direkte fejl, men det er
en forvirrende måde at kode på.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408191
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste