PHP4-Forum
Forum | Befehle | MySQL | Beispiele | Newsletter | Suche | Home

Untermenü

Beispiele
Datenbankbasiert
Dateibasierte
Spiele
Sonstige

Zu dieser Seite

Dateibasierte
Gästebuch
Suchmaschine
Counter
Emailanhang
Quellcode
Upload
Sitemap erstellen
IP Sperre
Datenbankanbindung
Suchmaschine

Download | Testen

Es gibt zwei Möglichkeiten eine lokale Suchmaschine aufzubauen. Die erste basiert auf einer Datenbank. Da eine solche Suchmaschine einfach aufzubauen ist, entschieden wir uns für die zweite Methode. Unsere Suchmaschine durchsucht alle Dateien in einem Verzeichnis nach dem Suchbegriff. Und so funktioniert sie:
Jede einzelne Zeile wird ausgelesen, wobei die HTML-Tags <*.*> entfernt und nur der Inhalt der Datei nach dem gesuchten Begriff überprüft wird. Ein grosser Nachteil ist es, dass die Suche relativ lange dauert. (Es werden ja immerhin mehrere Dateien durchsucht...)

Der Quelltext würde dann folgendermassen aussehen.


<?php
  echo "<HTML><BODY>";
  echo "<FORM ACTION=$PHP_SELF METHOD=POST> ";
  echo "<INPUT TYPE=TEXT NAME=wort VALUE=$wort>";
  echo "<INPUT TYPE=SUBMIT VALUE=Durchsuchen></FORM>";
  $wort = strtolower(trim($wort));
 
if($wort) {
 
  // Funktion zum Auslesen des Verzeichnisses
  function read_dir($dir=".",$endung=".htm") {
   settype($dateinamen,"array");
   if(!is_dir($dir)) return false;
   $verzeichnis = dir($dir);
   while($datei = $verzeichnis -> read()) {
    if($datei[0] != "." && substr($datei,strlen($endung)*(-1)) == $endung) {
     $dateinamen[] = $datei;
    }
   }
   $verzeichnis->close();
   sort($dateinamen);
   return $dateinamen;
  }
 
  // Das Hauptprogramm
  $dateinamen = read_dir(".");
  for($i=0;$i<count($dateinamen);$i++) {
   $name = $dateinamen[$i];
   $datei = "$name";
   $start = 0;
   $fp = fopen($datei,"r");
   while(!feof($fp)) {
    $zeile = strtolower(trim(fgetss($fp,1024)));
    if(strstr($zeile,$wort)) {
     $name = substr($name,0,strlen($name)-4);
     if (!$ergebnis) echo "Folgende Dateien enthalten Ihren Suchbegriff:<P>";
     echo "<A HREF=\"$datei\">$name()</A><BR>";
     $ergebnis++;
     break;
    }
   }
   fclose($fp);
  }
 
  if(!$ergebnis) echo "Keine passenden Dateien gefunden";
 
}
 
echo "</BODY></HTML>";

?>
Dienstleistungen | Werbung | Impressum | Sitemap | Kontakt | Email © 1999 - 2013 | Last Update: 04.03.2001