Text automatisch erstezen
am 03.09.2006 11:13:08 von Alex BleibtreuHallo !
Ich möchte, dass meine php-suchmaschine, die leider wörter mit ö,ü,ä, nicht
findet, da die html-Dateien, die diese durchsucht anderst kodiert sind
findet.
In der SUche gebe ich z.B. ein: "verträge". Das wort wird in den Dateine,
die Durchsucht werden nicht gefunden, da es dort so geschrieben ist:
"verträge"
nun möchte ich, dass wenn jemand in der suche "verträge" eingibt, die
eingabe automatisch geändert wird in "verträge" und dann erst die Suche
beginnt.
Könnt Ihr mir da weiterhelfen?
Hier das Script (auszugsweise):
--------------schnippp------------
########### PHP-Suchmaschine ###########
########### powered by Viktor Widiker & http://www.widiker.de, Berlin 2002
###########
########### Hier folgen die Einstellungen ###########
$max_suchwoerter=3; # Maximale Anzahl der Suchw?rter, die wahrgenommen
werden
$treffer_pro_seite=10; # Wie viele Treffer werden pro Ergebnisseite
angezeigt?
$endungen=array("html","htm"); # Dateien mit welchen Endungen werden
durchsucht?
$pfade_gesamt="./,bleiste/,form/,image/,inhalt/,news/,pdf/,p df06/,produkte/,service/,unterhal/,untern/,untern/,gleichbeh andlung/,N/,netz/,netz/bereitschaft/,netz/bestimmungen/,netz /entgelte/,netz/grundversorg/,netz/lastprofile/,netz/musterv ertr/,netz/pdf/,netz/sonstiges/,leist/navi/";
# Adressen (relativ zum Suchmaschinennskript) der zu durchsuchenden Ordner
(durch Kommata trennen!)
$max_stelle=200; # Maximale (ungef?hre) L?nge (in Zeichen) der ersten
gefundenen Textstelle
$mehr_laenge=200; # Maximale (ungef?hre) L?nge (in Zeichen) des Strings f?r
weitere Vorkommnisse
########### Ab hier folgt die Suche #######
if (!isset($grossschreibung)) { $grossschreibung=0; }
if (!isset($ganzewoerter)) { $ganzewoerter=0; }
if (!isset($index)) { $index=0; }
$suchtext=trim(stripslashes($suchtext));
if ($grossschreibung==0) { $suchtext=strtolower($suchtext); }
$suchtext=ereg_replace(","," ",$suchtext);
$suchtext2=array(); $suchwoerter=array();
$suchtext2=explode(" ",$suchtext);
foreach ($suchtext2 as $einwort)
{
if (($einwort!="") && (count($suchwoerter)<=($max_suchwoerter-1)) &&
(!in_array($einwort,$suchwoerter)))
{ array_push($suchwoerter,$einwort); }
}
$suchtext=implode(" ",$suchwoerter);
?>
if ($suchtext!="") { start(); ausgabe(); }
function start()
{
global
$suchwoerter,$grossschreibung,$ganzewoerter,$dateinummer,$tr effer,$max_stelle,$mehr_laenge;
global $endungen,$pfade_gesamt;
$dateinummer=0;
$treffer=array();
$pfade=array(); $pfade=explode(",",$pfade_gesamt);
foreach ($pfade as $pfad)
{
$ordner=opendir($pfad);
while ($eintrag=readdir($ordner))
{
$name=$pfad.$eintrag;
$dateiname=explode(".",$eintrag);
if (in_array($dateiname[1],$endungen))
{
$anzahl=0;
$schluss=0;
$gefundene_woerter=array();
$datei=fopen($name,"r");
while (!feof($datei))
{
$zeile=fgetss($datei,10000,"");
if ($grossschreibung==0) { $zeile=strtolower($zeile); }
$woerter=explode(" ",$zeile);
foreach ($woerter as $wort)
{
foreach ($suchwoerter as $suchwort)
{
### ganze W?rter ###
if ($ganzewoerter==0)
{
if (strstr($wort,$suchwort))
{
if (!in_array($suchwort,$gefundene_woerter)) {
array_push($gefundene_woerter,$suchwort); }
$anzahl++;
$treffer["vorkommnisse"][$dateinummer]++;
if ($anzahl==1)
{
$treffer["datei_url"][$dateinummer]=$name;
$position=strpos($zeile,$wort);
$wortlaenge=strlen($wort);
$zeilenlaenge=strlen($zeile);
if ($zeilenlaenge>$max_stelle)
{
$lside=$position-(($max_stelle-$wortlaenge)/2);
$rside=$lside+$max_stelle;
if ($lside<0) { $rside=$rside-$lside; $lside=0; }
if ($rside>$zeilenlaenge) { $rside=$zeilenlaenge; }
}
else { $lside=0; $rside=$zeilenlaenge; }
$stelle=substr($zeile,$lside,$rside-$lside);
$stelle=ereg_replace($wort," class=\"markierung\">".$wort."",$stelle);
$stelle="...".$stelle."...";
$treffer["textstelle"][$dateinummer]=$stelle;
}
else if ($anzahl==2) { $teil=ereg_replace(",","",$teil);
$mehr=$teil; }
else if ($anzahl>2)
{
if (strlen($mehr)<$mehr_laenge) { if ($mehr=="") { $komma=""; }
else { $komma=", "; } $wort=ereg_replace(", ","",$wort);
$mehr.=$komma.$wort; }
else { if ($schluss!=1) {$mehr=$mehr." ..."; $schluss=1;} }
}
}
}
--------------------schnappp--------------