phpbar.de logo

Mailinglisten-Archive

[php] PHP-Suchscript

[php] PHP-Suchscript

Michael Stahmann Michael_(at)_Stahmann.de
Fri, 08 Dec 2000 11:38:34 +0100


Hallo Thomas,

thomas hausheer schrieb:
> 
> Hallo Liste
> 
> Kennt jemand ein Suchscript, dass ohne MySQL funktioniert. Ich möchte einen
> Suchmaschine implementieren, die auf einer Homepage ohne MySQL verschiedene
> Text-Files nach einem Suchbegriff durchforstet und ausgibt.

Ich habe so etwas einmal gemacht, das Script ist aber so unsauber
programiert, das ich Dir das wirklich nicht anbieten möchte.

Der Nachteil ist, das man mit allem (was ich versucht habe) leider nur
wirklich genaue Treffer finden kann. 

Also Funktionen habe ich strpos eingesetzt, das war bei meinen Tests
das schnellste.

Also in etwa so:
smax = 100; // Max Ergebnisse
$begriff= strtolower($begriff);
list ($begriff1, $begriff2)=explode(" ",$begriff);

  $f=opendir("./daten/");

  $fn=readdir($f);

while ($fn):
$fn=readdir($f);
$datei="./daten/".$fn;
    $liste=_(at)_fopen("$datei", "r+");
    if ($liste <= 0):
//  echo("Fehler: Daten nicht vorhanden");
    else:
$eintrag=chop(fgets($liste,10000));

  while(feof($liste)==0  and $anzahl <= $s_max):
  $eintrag=chop(fgets($liste,10000));
     
  $search_it= strtolower($eintrag);

$search_it=".".$search_it; //Damit auch das erste Wort gefunden werden
kann

if (strpos($search_it,$begriff1) or strpos($search_it,$begriff2)):

-> DatensatzAusgabe



Wobei ich nach konkreten "Datensätzen" in Textfile (csv-Format)
gesucht habe.

Wenn Du einfacvh nur wissen willst, ob etwas im file enthalten ist,
sollte es so gehen.

->Durch das Verzeichnis laufen
->Datei mit fread öffnen
->Durchzuchen mit strpos oder eregi (bei mir war strpos schneller -
weis der PHP-Guru warum)
->Datei merken (im array)
->wenn gefunden gleich nächste Datei (damit vermeidet mann doppelte
Treffer.
->
->Ergebnis ausgeben

Das nur als kleiner Workaround. 

Zu sehen unter http://www.utopton.de/katalog/tontraeger/

Als Tip noch: wichtig ist, die Besuchereingabe für die maximale
Treffer-Anzahl richtig zu checken, sonst läüft sich der Server bei
einem Buchstaben fast tot.

Gruß Michael (der an dieser Geschichte dringend mal wieder arbeiten
muß)


-- 
--------------------------------------------------------
Michael Stahmann,      web-xact.de <website-development>
http://www.web-xact.de           mailto:info_(at)_web-xact.de
Burchardstr. 10, D-28217 Bremen, Tel/Fax 0421-3887750/51
--------------------------------------------------------
 Sinnloser Bildschirmschoner: http://schlammpeitzger.de


php::bar PHP Wiki   -   Listenarchive