Michael W.: function getDirList

Hallo,

Ich würde gerne wissen wie das script funzt:

function getDirList ($dirName) {
 $d = dir($dirName);
 $dirName = strtoupper($dirName);
 while($entry = $d->read()) {

if ($entry != "." && $entry != "..") {
   if (is_dir($dirName."/".$entry."  ")) {
    getDirList($dirName."/".$entry);
   }
   else {
    print "<a href="$entry">$entry</a><br>";
   }
  }
 }
  $d->close();
}
 getDirList(".");

es liest das verzeichniss aus in dem das script selber liegt. wie kann ich ein unterverzeichniss auslesen ? wo wird der pfad dafür angegeben?

Danke

  1. Hallo,

    hallo

    Ich würde gerne wissen wie das script funzt:

    das ist eine rekursive funktion, die sich demnach selbst aufruft

    function getDirList ($dirName) {
     $d = dir($dirName);

    // hier holt er sich das Verzeichnis

    $dirName = strtoupper($dirName);

    //macht Grossbuchstaben drauss

    while($entry = $d->read()) {

    //solange er Inhalte lesen kann

    if ($entry != "." && $entry != "..") {

    //gucken ob Inhalt au´s . oder .. besteht, wenn nein

    if (is_dir($dirName."/".$entry."  ")) {

    // gucken ob es weitere direktories gibt, wenn ja ruft sich die funktion selbst auf mit dem neuen Unterverzeichnisname
    hier gehts also zu den Unterverzeichnissen, haben diese wieder Unterverzeichnisse, gehts weiter...

    getDirList($dirName."/".$entry);
       }
       else {
        print "<a href="$entry">$entry</a><br>";

    // ansonsten gib die den Namen der Datei aus

    }
      }
     }
      $d->close();
    }
     getDirList(".");

    // funktionsaufruf mit ., wird also abgebrochen gleich am Anfang

    es liest das verzeichniss aus in dem das script selber liegt. wie kann ich ein unterverzeichniss auslesen ? wo wird der pfad dafür angegeben?

    hoffe es war Erklärung genug?! Bin manchmal etwas umständlich

    ciao
    romy

    Danke

    --
    DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
    ->Alles ist gut wenn es aus Schokolade ist
    1. ich möchte einen ordner 'uploads' auslesen:

      $dirName = "./uploads/";
       function getDirList ($dirName) {
       $d = dir($dirName);
       $dirName = strtoupper($dirName);
       while($entry = $d->read()) {

      if ($entry != "." && $entry != "..") {
         if (is_dir($dirName."/".$entry."  ")) {
          getDirList($dirName."/".$entry);
         }
         else {
          print "<a href="$entry">$entry</a><br>";
         }
        }
       }
        $d->close();
      }
       getDirList(".");

      geht nicht was muss ich anders machen ?

      Danke

      1. ich möchte einen ordner 'uploads' auslesen:

        $dirName = "./uploads/";
         getDirList(".");

        hier liegt der Hase im Pfeffer:
        Du sagst zwar $dirname = blabla, aber der Funktionsaufruf ist trotzdem mit einem ".", demzufolge passiert nichts

        getDirList($dirname); sollte das Gewünschte bringen

        hih

        Danke

        --
        DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
        ->Alles ist gut wenn es aus Schokolade ist
        1. Warning: OpenDir: No such file or directory (errno 2) in /var/www/l3s1286/html/djwoelk/fi12/test/login/boup.php on line 106

          Fatal error: Call to a member function on a non-object in /var/www/l3s1286/html/djwoelk/fi12/test/login/boup.php on line 108

          106: function getDirList ($dirName) {
          108: $dirName = strtoupper($dirName);

          und nu?

          1. ok habs (gross und klein schreibung)...

          2. 106: function getDirList ($dirName) {
            108: $dirName = strtoupper($dirName);

            und nu?

            ich weiss es nicht ganz genau, ABER: zeile 108 brauchst Du gar nicht wie ich sehe, kannst Du also auskommentieren, ist nur dafür da den verzeichnisnamen mit Grossbuchstaben zu versehen und wenn dein Verzeichnis aber nicht grossgeschrieben ist-> findet er es logischerweise nicht!
            hoffe, dass war schon das Problem!
            klingt sehr dananch
            ausserdem machst Du dir es schwerer als nötig
            $dirname = "upload", lass die / und . weg -> kann sein dass strtoupper damit ein Problem hatte!
            hoffe jetzt gehts

            --
            DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
            ->Alles ist gut wenn es aus Schokolade ist