Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Nach spez.Datei in Ordnern suchen

  1. #1
    Registrierter Benutzer
    Registriert seit
    24.09.2005
    Beiträge
    48

    Nach spez.Datei in Ordnern suchen

    Hallo zusammen,

    ich hab ein Problem und überhaupt keine Ahnung, wie ich das angehen könnte.

    Ich hab eine Ordnerstruktur, die unterschiedlich tief aufgebaut ist, also komplett heterogen.

    Mein Problem ist, dass in jedem Verzeichnis eine spezielle Datei liegen muss, z.B. die "datei.txt".

    Ich möchte nun eine PHP-Skript aufbauen, die mir alle Verzeichnisse abscannt und prüft, ob die o.g. Datei darin liegt.
    Wenn nicht, soll mir das entsprechende Verzeichnis angezeigt werden.

    Könnt ihr mir sagen, ob das überhaupt mit PHP möglich ist
    und wie das Skript aussehen könnte ?

    Herzlichen Dank im voraus,
    Gruß
    Andreas

  2. #2
    Registrierter Benutzer
    Registriert seit
    25.12.2004
    Beiträge
    217
    Hallo Andreas,

    du kannst mit einer rekursiven (sich selbst aufrufenden) Funktion das Verzeichnis durchlaufen.

    Beispiele findest du bei Google und im PHP Manual:
    http://de.php.net/manual/de/function.opendir.php

    In den Kommentaren gibt es z. B. folgende Funktion die ein Verzeichnis rekursiv durchsucht:
    PHP-Code:
    function search($target$directory){
        
       if(
    is_dir($directory)){
           
    $direc opendir($directory);
           while(
    false !== ($file readdir($direc))){
              
               if(
    $file !="." && $file != ".."){

                   if(
    is_file($directory."/".$file)){
                       if(
    preg_match("/$target/i"$file)){
                                               echo 
    "<a href=\"$directory/$file\">$file</a><br>";
                                           }
                   }else if(
    is_dir($directory."/".$file)){
                       
    search($target,$directory."/".$file);
                      
                   }

               }
           }
           
    closedir($direc);
       }

       return ;

    Du müsstest die Funktion etwas umschreiben, sodass in jedem Verzeichnis nach der Datei "datei.txt" gesucht wird - sollte aber kein Problem sein.

    Grüße,
    nEox

  3. #3
    Registrierter Benutzer
    Registriert seit
    22.08.2002
    Ort
    Nürnberg
    Beiträge
    638
    Theoretisch und praktisch lässt sich dies in PHP lösen. Alles nötige inkl. Beispiel findest Du hier: http://php.net/opendir

    Am einfachen lässt sich dies durch Rekursion lössen. Das heisst, es gibt eine Funktion, die nach weiteren Verzeichnissen im aktuellen Verzeichnis scant. Dabei immer aufpassen, dass die Abbruchbedingung klar ist, denn sonst keine rekursive Funktion in einer Endlosschleife enden.
    Ein anderes Problem welches auftreten könnte betrifft die Abarbeitungseit. Denn je nach Verzeichnisstruktur kann dies lange dauern.

    Pingu
    Homepage: www.pingu.info

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •