Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Volltextsuche über HTML-Seiten ohne Datenbank

63 views
Skip to first unread message

Colin Finck

unread,
Aug 21, 2004, 8:20:54 AM8/21/04
to
Hallo!
Wie programmiere ich eine Volltextsuche mit PHP, welche HTML-Seiten
durchsucht? Ich finde immer nur Beispiele mit MySQL.

Vielen Dank im Voraus!

Colin

Stephan Klein

unread,
Aug 25, 2004, 7:20:28 PM8/25/04
to
Hallo Colin!

Ich hab das mal schnell für dich geschrieben. Lokal hats bei mir
funktioniert.

<?
// Volltextsuche in einem Verzeichnis

// benötigte funktionen
function instring($needle,$haystack) {
$extra = stristr($haystack,$needle);
if($extra != $haystack) {
return true;
} else {
return false;
}
}
function getext($string)
{
return substr(strrchr($string, '.'), 1);
}


// suchfunktion
function suchen($dir,$ext,$string) {
if($dh = @opendir($dir)) {
$dateien = array();
$ergebnisse = array();
$filecounter = 0;
$foundcount = 0;

// überprüfen, ob ein beistrich (trennzeichen) in der variable $ext
enthalten ist
if(instring(',',$ext) == true) {
$erweiterungen = explode(',',$ext);
while($file = readdir($dh)) {
if($file != '.' && $file != '..' &&
in_array(getext($file),$erweiterungen)) {
array_push($dateien,$file);
$filecounter++;
}
}
} else {
while($file = readdir($dh)) {
if($file != '.' && $file != '..' && getext($file) == $ext) {
array_push($dateien,$file);
$filecounter++;
}
}
}
if($filecounter == 0) {
array_push($ergebnisse,'no files');
} else {
foreach($dateien as $filename) {
if(instring($string,file_get_contents($dir.$filename)) == true) {
$in_doc_count =
substr_count(file_get_contents($dir.$filename),$string);
array_push($ergebnisse,$filename.' ('.$in_doc_count.'x gefunden)');
$foundcount++;
}
}
}
return $ergebnisse;

} else {
return array('no dir');
}
}

?>

Verwendung:

<?
$suche = suchen('system/sitehandler/','html','suchstring');
// suchen(Verzeichnis,Erweiterungen mit denen gesucht wird,Suchtext);
foreach($suche as $ergebnis)
{ // ausgabe mit
foreach()
echo $ergebnis.'<br>';
}
?>

Die Funktion gibt einfach aus: Dateien in denen der Suchstring gefunden
wurde und wie oft er gefunden wurde.
Würde mich über Feedback über die Funktion freuen, da ich sie jetzt grade
selbst geschrieben habe!

MFG,

Stephan Klein


0 new messages