Problem mit ordner auslesen

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

  • Problem mit ordner auslesen

    Hallo,

    ich habe einen Webserver im Inranet(Mac osx Server).
    Auf diesem lasse ich mit einen php-Script einen Fileserver (Mac osx) Scannen um die Dateinamen etc in eine DB zu schreiben.
    Jetzt habe ich aber das Problem, dass mein script nur die oberste
    Struktur Scann, also nicht in die Unterordner geht.
    Anscheinend funktionier is_dir() nicht. Hat jemand ne ahnung woran das liegen könnte oder was ich anders machen könnte??

    Danke vorab.

    PHP-Code:
    $mydir    "../../../Volumes/Server";






    function 
    read_dir($dir){
        
    $root opendir($dir);
        while (
    $files readdir($root)) 
      {
            if(
    $files != "." && $files != ".." && $files != ".DS_Store")
            {
              if(
    is_dir("/".$dir."/".$files))
          {
                  echo 
    "/".$dir."/".$files."<br>";
                    
    read_dir("/".$dir."/".$files);
               }
            else
              {
                echo 
    "File -> "."/".$dir."/".$files."<br>";
               }
            }
        }
                
    closedir($root); 
            } 

    read_dir($mydir); 

  • #2
    warum veränderst du ja auch den dateinamen, bevor du ihn an is_dir übergibst?

    Kommentar


    • #3
      Nun, den Verzeichnisnamen mit an is_dir() zu übergeben, ist natürlich richtig.

      Nur bezweifle ich irgendwie, ob das mit dem führenden Slash so eine gute Idee ist ...
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Nur bezweifle ich irgendwie, ob das mit dem führenden Slash so eine gute Idee ist ...
        Hmm, habe es aber auch schon ohne führendes slash probiert, leider auch ohne Erfolg.

        EDIT:echo "File -> "."/". <-is natürlich quatsch Ist beim riumtesten dazwischen geraten...
        Zuletzt geändert von kakktus; 04.06.2007, 14:36.

        Kommentar


        • #5
          "ohne erfolg" ist keine problembeschreibung.
          wenn du dir den dateinamen ausgeben würdest, den du an is_dir übergibst, würdest du sehen, was du daran falsch machst.

          Kommentar


          • #6
            Original geschrieben von kakktus
            Hmm, habe es aber auch schon ohne führendes slash probiert, leider auch ohne Erfolg.
            Es sagte ja auch niemand, dass du einfach wild herumraten sollst, bis sich irgendwann zufällig irgendeine Kombination als richtig herausstellt.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Also ich rate nicht einfach rum, aber das mit dem fürenden slash hatte ich im Zuge meines Problems in einem anderen Forum gelesen.
              So, das dazu.

              wenn du dir den dateinamen ausgeben würdest, den du an is_dir übergibst, würdest du sehen, was du daran falsch machst.
              Habe ich auch und leider meinen Fehler nicht erkannt. Aber vielleicht bist du ja so nett und hilfst mir auf die Sprünge.

              Kommentar


              • #8
                wenn du zeigst, was herauskam...

                Kommentar


                • #9
                  So habe ich es jetzt:

                  PHP-Code:
                  function read_dir($dir){
                      
                  $root opendir($dir);
                      while (
                  $files readdir($root)) 
                    {
                          if(
                  $files != "." && $files != ".." && $files != ".DS_Store")
                          {
                             echo 
                  $dir."/".$files."<br>";
                            if(
                  is_dir("/".$dir."/".$files))
                        {
                                  
                  read_dir($dir."/".$files);
                             }
                          else
                            {
                              echo 
                  "File -> ".$dir."/".$files."<br>";
                             }
                          }
                      }
                              
                  closedir($root); 
                          } 

                  read_dir($mydir); 

                  Das kommt raus. Wobei das alles Ordner mit unterordnern sind
                  PHP-Code:
                  ../../../Volumes/Server/Data
                  File 
                  -> ../../../Volumes/Server/Data
                  ../../../Volumes/Server/Kunden
                  File 
                  -> ../../../Volumes/Server/Kunden
                  ../../../Volumes/Server/Stuff
                  File 
                  -> ../../../Volumes/Server/Stuff
                  ...
                  ... 

                  Kommentar


                  • #10
                    hint: du gibts nicht das aus, was du an is_dir übergibst.

                    Original geschrieben von kakktus
                    Also ich rate nicht einfach rum, aber das mit dem fürenden slash hatte ich im Zuge meines Problems in einem anderen Forum gelesen.
                    das _ist_ herumraten.

                    Kommentar


                    • #11
                      hä?? ach mist.. ein / zuviel ..stimmt, sorry.
                      Oder was meinst du??

                      das _ist_ herumraten.
                      Na nenn es so, ok aber was soll ich deiner meinung nach machen??

                      Kommentar


                      • #12
                        genau. und was schließt du jetzt daraus? schau dir den pfad noch mal genau an.

                        Kommentar


                        • #13
                          ja aber ohne slash geht es genau so wenig.
                          die habe ich ja erst davor gesetzt weil es ohne nicht ging.
                          Darauf hin habe ich ja auch erst "rumgeraten"
                          Zuletzt geändert von kakktus; 04.06.2007, 14:59.

                          Kommentar


                          • #14
                            "geht es genausowenig" ist keine problembeschreibung.

                            testausgaben machen und zeigen, file_exists() anwenden, mit dem absoluten pfad vergleichen (getcwd())

                            Kommentar


                            • #15
                              "geht es genausowenig" ist keine problembeschreibung.
                              Die Problembeschreibung habe ich doch oben schon gegeben und ist bis dato unverändert

                              Habe es jetzt so gemacht:
                              PHP-Code:

                              echo "getcwd -> ".getcwd()."<br><br>";

                              function 
                              read_dir($dir){
                                  
                              $root opendir($dir);
                                  while (
                              $files readdir($root)) 
                                {
                                      if(
                              $files != "." && $files != ".." && $files != ".DS_Store")
                                      {
                                        
                                         echo 
                              $dir."/".$files."<br>";
                                         
                                         if (
                              file_exists($dir."/".$files)) {
                                        echo 
                              "File exsit ".$dir."/".$files;
                                      } 
                                      else 
                                      {
                                       echo 
                              "No File exsit".$dir."/".$files."<br>";
                                      }
                                      
                                        if(
                              is_dir($dir."/".$files))
                                    {

                                              
                              read_dir($dir."/".$files);
                                         }
                                      else
                                        {
                                          echo 
                              "File -> ".$dir."/".$files."<br>";
                                         }
                                      }
                                  }
                                          
                              closedir($root); 
                                      } 

                              read_dir($mydir); 
                              Hoffe, dass du es so meintest.

                              ausgabe



                              PHP-Code:
                              getcwd -> /Library/WebServer/Documents


                              ../../../Volumes/Volumes/Server/Data
                              No File exsit
                              ../../../Volumes/Volumes/Server/Data
                              File 
                              -> ../../../Volumes/Volumes/Server/Data
                              ../../../Volumes/Volumes/Server/Kunden
                              No File exsit
                              ../../../Volumes/Volumes/Server/Kunden
                              File 
                              -> ../../../Volumes/Volumes/Server/Kunden 

                              Kommentar

                              Lädt...
                              X