alle dateien eines verzeichnises durchsuchen ?

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

  • alle dateien eines verzeichnises durchsuchen ?

    Wie kann ich ALLE Dateien in einem Verzeichnis nacheinander nach einem bestimmten String druchsuchen lassen ?

    Ich muss wohl nicht erwähnen das ich PHP Newbie bin um so eine frage zu stellen

    Fileopen ist mir ja geläufig aber wie schaff ich es eben das ich ALLE Files aus einem Verzeichnis nacheinander abfrage ?

  • #2
    Du brauchst zwei Funktionen:
    1. eine Funktion, die alle dateinamen eines Verzeichnis in ein Array liest
    2. eine Funktion, die jedes File durchsucht.

    die erste Funktion gibts hier irgendwo im Forum...

    oder grep
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      mit unterordnern gibts hier:
      http://www.php-resource.de/forum/sho...threadid=11203

      mit nur einem Ordner ausm Manual:
      <?php
      $handle=opendir('.');
      while ($file = readdir ($handle)) {
      if ($file != "." && $file != "..") {
      echo "$file\n";
      }
      }
      closedir($handle);
      ?>

      für das Durchsuchen der Dateien:
      die Dateien der Ordner in ein Array schreiben lassen, dieses array durchgehen und jede datei öffnen und auch in ein Array (oder ein Mehrdimensionales). dann kannst du bequem suchen

      was haste denn vor, vielleicht gibts ja schon was fertiges ?!

      gruss

      Kommentar


      • #4
        PHP-Code:
        <?
        function such($dir,$needle) {
            $subdirs=array();
            $matches=0;

            $dirh=opendir($dir);

            while($filename=readdir($dirh)) {
                if($filename!=".." && $filename!=".") {
                    
                    if(is_file($dir."/".$filename)) {
                        $cont = "";
                        
                        $fp = @fopen($dir."/".$filename,"rb");

                        while(!feof($fp)) {
                           $cont.= fread($fp,1024);
                        }

                        fclose($fp);

                        if (strpos($cont,$needle)) {
                           $matches++;
                           print "Match found in file: $dir/$filename<br>\n";
                        }

                    } elseif(is_dir($dir."/".$filename)) {
                        $subdirs[]=$dir."/".$filename;
                    }
                }
            }
            closedir($dirh);

            for($i=0;$i<count($subdirs);$i++) {
                $size+=such($subdirs[$i]);
            }

            return $matches;
        }

        print "<hr>".such(".","for")." Matches found<br>\n";
        Falls Du einen Error bekommst
        Fatal error: Maximum execution time of 30 seconds exceeded in ... on line 18
        -> That's live

        Kommentar


        • #5
          wenn schon so ein skript, dann kann man auch die max-execution-time hochstellen

          Kommentar


          • #6
            Wolllte nur mal fragen wie ich die funktion am besten anspechen könnte.
            Habe noch nie mit einer funktion gearbeitet.

            Wie schicke ich denn die Suchanfrage an die Funktion?

            Kommentar

            Lädt...
            X