Nicht alle Ordner durchsuchen

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

  • Nicht alle Ordner durchsuchen

    Hallo,

    Ich habe hier ein script das alle ordner und die darin befindlichen dateien auflistet.

    Nun möchte ich das dieses script ab dem root startet und eine gesamte webseite auflistet.

    Das problem:
    Es soll eine exclude liste von ordner und dateien berücksichtigt werden. Also nicht alle ordner und nicht alle dateien dürfen gelistet werden.

    - die Datei .htaccess und ihr gesamter ordner + event. unterordner
    - robots.txt
    - ordner geheim1 und geheim2
    dürfen nicht durchsucht/angezeigt werden.

    Das script das soweit läuft aber keine der obigen Ausnahmen berücksichtigt ist folgendes:

    PHP-Code:
    <?php error_reporting(E_ALL);
    # Verzeichnisbaum erstellen
    show_all_files("./");
    function 
    show_all_files($ordner,$links=20,$sub=FALSE)
     {
    $fh=opendir($ordner);
      while(
    $file=readdir($fh))
       {if(
    $file!="." && $file!="..")
         {if(
    is_dir($ordner."/".$file))
           {echo 
    '<span style="padding-left:'.$links.'px"><b>'.$file.'</b> (Verzeichnis)</span><br />';
            
    show_all_files($ordner."/".$file$links+20TRUE);
           }
          else
           {echo 
    '<span style="padding-left:'.$links.'px"><a href="'.$ordner."/".$file.'">'.$file.'</a> (Datei: '.filesize($ordner."/".$file)/1000 .' kB)</span><br />';}
         }
       }
      
    closedir($fh);
     }
    ?><hr />
    Wer kann mir da paar tipps geben.
    Ich möchte damit so langsam eine websuche für die eigene domain daraus machen.
    ACHTUNG: RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit

  • #2
    Dann überleg dir, wo und wie du "Ausnahmen" definieren kannst, und wo die Überprüfung eingebaut werden könnte.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Er mal wieder mit seiner plumpen art!

      Also ich dachte hier wäre das am besten, bevor die funktion überhaubt ausgeköst wird:

      show_all_files("./");

      andererseits könnte man das auch in dieser zeile machen:
      if($file!="." && $file!="..")

      Ich denke aber das es im ersten fall am besten wäre, das script soll am ende auch schnell sein.

      Also ich weiß nicht wie ich das machen soll, hab nix ahnung deshalb poste ich da ja auch hier.

      Ich würde da ein
      arr=array("geheim1","geheim2",".htaccess");
      erstellen, aber da sind dann ordner und dateien drin, die funktion greift ja nur auf ordner
      ACHTUNG: RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit

      Kommentar


      • #4
        @mädel

        schau dir ggf. mal hier die ersten beiden tutorials an. da wird dein problem genau erläutert und umgesetzt.

        peter

        ps: bei fragen schicke ich ich dir gerne meine aktuelle fassung zu.
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Hi Peter

          Ok hab mir alle 3 pdf's und die zip-dateien runtergeladen und mache mich gleich dran...

          Ich nehm dich beim Wort: "...da wird dein problem genau erläutert und umgesetzt."

          Mit Klassen hab ich noch wenig am hut, ist das überhaupt erforderlich für mich? Ich möcht ja nur ne kleine schnuckeleige (aber schnelle) suche für meine rund 50 seiten basteln.

          ACHTUNG: RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit

          Kommentar


          • #6
            Haste Peter's Links schon gelesen? Ja?
            Na dann......:

            PHP-Code:
            function readDirRecursive($dir) {
              IF (
            false === is_dir($dir)) {
                return 
            false;
              }
             
              
            $handle opendir($dir); 
             
              IF (
            false === $handle) {
                return 
            false;
              }
             
              
            $result = array();
              
            $ignore = array('ALLES''WAS''KEINER''SEHEN''SOLLTE');

              WHILE (
            false !== ($file readdir($handle))) {
                
            // Ausschluss von . und ..
                
            IF ('.' == $file || '..' == $file) {
                  
            // nächstes Element
                  
            continue;
                }
                
            // Verarbeitung von Verzeichnisnamen
                
            IF (is_dir($dir $file)) {
                  
            // Selbstaufruf
                  
            readDirRecursive($dir $file '/');
                  
            // nächstes Element
                  
            continue;
                }
                
            // Array Zuweisung des Dateinamens
                
            IF (!is_file($dir "/" $file) && !in_array($file$ignore)) {
                  
            $result[] = $file;
                }
              }

              
            closedir($handle);
              return 
            $result;

            Sollte so funktionieren! Aufräumen musste die Funktion selber "mädel"
            Du könntest aber $ignore auch als Array an die Funktion übergeben, anstatt es in der Funktion selbst zu deklarieren. Das lässt dir mehr Freiheiten....
            Zuletzt geändert von nichtsooft; 24.06.2009, 09:24.
            WHILE (!$asleep) { $sheep++; }

            Kommentar

            Lädt...
            X