Verzeichnis auslesen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Verzeichnis auslesen

    Ich versuch ein Verzeichnis auszulesen. Der Verzeichnispfad ist in der Datenbank in der Spalte "link" wie folgt gespeichert: C:\\Inetpub\\...
    Nun möchte ich mir die dazugehörigen Unterverzeichnisse und Dateien anzeigen lassen... bisher leider erfolglos... Mein mometaner Code sieht so aus:


    PHP-Code:
     $userid $_SESSION['user_id'];
            
    $erg mysql_query("SELECT link FROM dream WHERE id = '$userid';");
            
    $row mysql_fetch_object($erg);
            
    $link $row->link;
        
    function 
    readDirectory($dir ".$link") {
        
    $result = array();
        if ( 
    $d openDir($dir) ) {
            while ( 
    $f readDir($d) ) {
                if ( !
    preg_match("/^.|..$/"$f) ) {
                    if ( 
    is_dir($f) ) $result[$f] = readDirectory("{$dir}/{$f}");
                    else 
    $result[$f] = filesize("{$dir}/{$f}");
                }
            }
            
    closeDir($d);
        }
        return 
    $result;

    Aber damit scheint es nich zu funktionieren... hat jemand eine Idee??

  • #2
    Sorry, aber

    Ich hab das und das probiert und DAS funktioniert nicht..

    ähm.. WAS funktioniert nicht..



    EDIT:

    function() { }

    hast du deklariert aber du benutzt sie nicht

    gruss Chris

    [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

    Kommentar


    • #3
      scheint nicht zu funktionieren?

      fehlermeldungen? rufst du die funktion überhaupt auf?
      Die Zeit hat ihre Kinder längst gefressen

      Kommentar


      • #4
        Und was soll das
        PHP-Code:
        ($dir ".$link"
        bewirken?

        An den Inhalt von $dir noch $link dranhängen? Das wird so nicht gehen.
        Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)

        Kommentar


        • #5
          Original geschrieben von thommyk
          Und was soll das
          PHP-Code:
          ($dir ".$link"
          bewirken?

          An den Inhalt von $dir noch $link dranhängen? Das wird so nicht gehen.
          Bitttttteeee erst lesen dann posten..

          $dir = ".$link" hängt bestimmt nichts an $dir an.. Verunsicher die leute hier nicht so..
          gruss Chris

          [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

          Kommentar


          • #6
            Ja, genau in dieser Zeile liegt auch mein Problem...
            Aber $dir steht doch für das Verzeichnis, oder??
            Und mein Verzeichnis steht in der Datenbank, in der Spalte $link...
            deswegen:

            PHP-Code:
            function readDirectory($dir ".$link"
            Und wegen der Zeile krieg ich auch n Fehler... und zwar Folgenden:

            Parse error: parse error in c:\inetpub\wwwroot\logintest\logo.php on line 22
            Ich weiß aber im Moment nicht was daran falsch ist...

            Kommentar


            • #7
              Welche Zeile ist denn Zeile 22 ???

              .....du hast den sinn von Funktionen immer noch nicht verstanden

              PHP-Code:
              function tuwas($variable)
              {
                echo 
              $variable;
              }
              // Bewirkt noch gar nichts

              tuwas("Hallo");

              // Gibt hallo aus

              // -----

              function tuwasanderes($link)
              {
                return 
              $link;
              }

              // Macht ebenfalls nichts

              $var tuwasanderes("Hallo");

              // In $var ist nun Hallo enthalten 
              Deine funktion sollte so aussehen
              PHP-Code:
              function readDirectory($dir) { // usw } 
              Am ende deines Scripts musst du

              PHP-Code:
              $ergebnis readDirectory($link);  // Ergebnis speichern
              print_r(readDirectory($link)); // Ergebnis als dump zeigen 
              Zuletzt geändert von hhcm; 22.11.2005, 18:21.
              gruss Chris

              [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

              Kommentar


              • #8
                Na die hier:
                PHP-Code:
                function readDirectory($dir ".$link"
                @hhcm
                Deswegen kriegt er ja den Fehler, was er auch geschrieben hat. Vielleicht solltest Du mal lesen vorm fragen.

                Ausserdem hab ich nicht gesagt, dass damit $link an $dir drangehängt wird, sondern vermutet, dass er dass versucht. Das ist doch wohl ein Unterschied.

                @chrissie82
                Es geht nicht, weil man als default-Wert für an Funktionen übergebene Variablen keine andere Variable verwenden kann!
                Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)

                Kommentar


                • #9
                  diese Zeile:

                  PHP-Code:
                  function readDirectory($dir ".$link"

                  Kommentar


                  • #10
                    An den Inhalt von $dir noch $link dranhängen? Das wird so nicht gehen.
                    Sieht für mich nicht nach einer Vermutung aus..

                    Und du hast den Sinn von funktionen nicht verstanden ist das gleiche was du gerade in kurzform sagtest...
                    gruss Chris

                    [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                    Kommentar


                    • #11
                      Erstmal vielen Dank für die superschnellen Antworten... habe das jetzt mal umgeschrieben... aber nun wird mir gar nichts mehr ausgegeben...
                      meine Funktion sieht jetzt wie folgt aus:

                      PHP-Code:
                      function readDirectory($dir) {
                          
                      $result = array();
                          if ( 
                      $d openDir($dir) ) {
                              while ( 
                      $f readDir($d) ) {
                                  if ( !
                      preg_match("/^.|..$/"$f) ) {
                                      if ( 
                      is_dir($f) ) $result[$f] = readDirectory("{$dir}/{$f}");
                                      else 
                      $result[$f] = filesize("{$dir}/{$f}");
                                  }
                              }
                              
                      closeDir($d);
                          }
                          return 
                      $result;
                          
                      $ergebnis readDirectory($link);  // Ergebnis speichern
                          
                      print_r(readDirectory($link)); // Ergebnis als dump zeigen
                        

                      Kommentar


                      • #12
                        @hhcm
                        Und du hast den Sinn von funktionen nicht verstanden ist das gleiche was du gerade in kurzform sagtest...
                        Du warst etwas schneller beim posten. Da war ich noch beim Schreiben.

                        aber nun wird mir gar nichts mehr ausgegeben...
                        Dann lass Dir doch mal $link ausgeben bzw. mach Dir ein paar Testausgaben in der function. Sollen wir jetzt in der Glaskugel lesen, woran es liegen könnte?

                        EDIT:
                        AAAhh: Ich glaub mich tritt ein Pferd: Du rufst Deine Funktion in der Funktion auf. Dein Skript hat sich schlichtweg aufgehängt, weil es in einer Endlosschleife läuft.
                        .

                        Der Aufruf der Funktion muss AUSSERHALB der Funktion liegen. Vielleicht solltest Du mal wirklich Grundlagen über Funktionen lernen, da hat hhcm recht.
                        Zuletzt geändert von thommyk; 22.11.2005, 18:53.
                        Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)

                        Kommentar


                        • #13
                          Entschuldigt bitte, aber ich bin absolute Anfängerin in php!!
                          Nun ja, habe jetz die besagte 2 Ausgabezeilen AUSSERHALB der Funktion zu stehen, und als Ausgabe wird mir jetzt:

                          Array ( )
                          angezeigt...

                          Kommentar


                          • #14
                            Nochmal die Frage: Was steht in $link drin, bevor Du die Funktion aufrufst? Ausgaben?
                            Ist das das richtige Verzeichnis?

                            Probier mal

                            PHP-Code:
                            function readDirectory($dir) {
                                echo 
                            $dir.'<br>';
                                
                            $result = array();
                                if ( 
                            $d openDir($dir) ) {
                                    while ( 
                            $f readDir($d) ) {
                                        echo 
                            $f.'<br>';
                                        if ( !
                            preg_match("/^.|..$/"$f) ) {
                                            if ( 
                            is_dir($f) ) $result[$f] = readDirectory("{$dir}/{$f}");
                                            else 
                            $result[$f] = filesize("{$dir}/{$f}");
                                        }
                                    }
                                    
                            closeDir($d);
                                }
                                else echo 
                            $dir.' konnte nicht geoeffnet werden<br>';
                                return 
                            $result;
                              }

                            print_r(readDirectory($link)); // Ergebnis als dump zeigen 
                            Was kommt raus?
                            Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)

                            Kommentar


                            • #15
                              Ok, hab ich probiert... scheint wohl mit dem "$link" zusammenzuhängen...
                              wenn ich dieses vorher mit echo aufrufe, dann erscheint als ausgabe $link...
                              und mit der neuen Funktion erscheint "konnte nicht geoeffnet werden.

                              Meine Link-Spalte in der Tabelle erhält folgenden Wert:

                              c:\\Inetpub\\wwwroot\\logintest\\geodaten\\20_chrissie1982
                              Das ist auch der richtige Pfad... allerdings hab ich festgestellt das die Spalte großgeschrieben ist, deswegen hab ich eine Zeile geändert:

                              $link = $row->Link;

                              aber leider immer noch kein Erfolg...
                              ich hatte aber vorher schonmal etwas anderes probiert, um mir das Verzeichnis anzeigen zu lassen... Und damit wurde es auch angezeigt... nur leider keine weiter Unterverzeichnisse... also muss das ja irgendwie funktionieren mit dem $link...

                              Kommentar

                              Lädt...
                              X