Stephan: Was ist hier falsch?

Beitrag lesen

OK, hier der Quellcode:

(ich lasse mal das rundrum weg, sonst ist es zu viel):


########### 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("php3"); # Dateien mit welchen Endungen werden durchsucht?

$pfade_gesamt="germany/suche/"; # 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); ?>

<form action="<? echo "$PHP_SELF"; ?>" method="post"> <TABLE width="600" cellpadding="5" cellspacing="0" border="0" align="left"> <tr> <td align="right" bgcolor="#C0C0C0"> <? echo "<input type="text" name="suchtext" size=""; $browser=$HTTP_USER_AGENT; if (1*strpos(strtolower($browser),"msie")>0) { echo "25"; } else { echo "14"; } echo "" value="".$suchtext.""><br><br>"; ?> <input type="submit" value="Suchen" style="border:1px solid #000000; background-color: #EEEEEE"> </td> <td bgcolor="#C0C0C0"> <b>Groß- und Kleinbuchstaben</b><br> <input type="radio" name="grossschreibung" value="1" <? if ($grossschreibung==1) echo "checked"; ?>>unterscheiden<br> <input type="radio" name="grossschreibung" value="0" <? if ($grossschreibung==0) echo "checked"; ?>>nicht unterscheiden </td> <td bgcolor="#C0C0C0"> <b>Art der Suche</b><br> <input type="radio" name="ganzewoerter" value="1" <? if ($ganzewoerter==1) echo "checked"; ?>>nur ganze Wörter<br> <input type="radio" name="ganzewoerter" value="0" <? if ($ganzewoerter==0) echo "checked"; ?>>Wortteile </td> </tr> </TABLE></form></td></tr><tr><td width="16%" valign="top"> <br><img src="/main/bzhgroup_suchen_de.jpg"><br><br>

<form action="/search.php" method="post"> <input type="text" name="suchtext" value=""><br> <input type="submit" value="Suchen" style="border:1px solid #000000; background-color: #EEEEEE"> </form> <a class=style1 href="/search.php">erweiterete Suche</a> <br><br><br><br><br> </td><td width="60%" valign="top">

<? if ($suchtext!="") { start(); ausgabe(); }

function start() { global $suchwoerter,$grossschreibung,$ganzewoerter,$dateinummer,$treffer,$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,"<span class="markierung">".$wort."</span>",$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;} }          }        }       }       ### ganze Wörter ENDE ###       ### Wortteile ###       else       {       if ($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=" ".$stelle." ";         $stelle=ereg_replace(" ".$wort." "," <span class="markierung">".$wort."</span> ",$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;} }          }        }       }       ### Wortteile ENDE ###      }      }     }     fclose($datei);     $treffer["woerter"][$dateinummer]=count($gefundene_woerter);     $treffer["mehr"][$dateinummer]=$mehr;     if (count($gefundene_woerter)>0) { $dateinummer++; }    }   }  closedir($ordner);  }

}

function ausgabe() { global $treffer,$dateinummer,$PHP_SELF,$index,$SERVER_NAME,$treffer_pro_seite,$suchwoerter,$suchtext,$grossschreibung,$ganzewoerter;

echo "<table width="600" cellpadding="5" cellspacing="0" border="0" align="left"><tr><td><table width="500" border="0" align="left"><tr><td>\n"; echo "<span style="font-size:13pt"><b>Ergebnisse der Suche:</b></span><br><br>\n"; $treffer_anzahl=count($treffer["datei_url"]); if ($treffer_anzahl==0) { echo "<span style="font-size:13pt"><b><br><br>Zu Ihrer Suche gibt es keine Treffer<br><br></b></span></td></tr></table>\n"; } else { @array_multisort($treffer["woerter"],SORT_DESC,$treffer["vorkommnisse"],SORT_DESC,$treffer["datei_url"],$treffer["textstelle"],$treffer["mehr"]); $suchtext=ereg_replace(" ",", ",$suchtext); if (count($suchwoerter)>1) { echo "Gesuchte Wörter: "; } else { echo "Gesuchtes Wort: "; } echo "$suchtext<br><br>\n"; $anfang=$index*$treffer_pro_seite+1; $ende=$anfang+$treffer_pro_seite-1; if ($ende>$treffer_anzahl) { $ende=$treffer_anzahl; } echo "<b>Treffer $anfang-$ende von insgesamt $treffer_anzahl Treffern, beste Treffer zuerst:<br><br>\n"; echo "</td></tr>\n";

for ($k=0;$k<$treffer_pro_seite;$k++) { $i=$index*$treffer_pro_seite+$k; $platz=$i+1; if ($platz<=$ende) { echo "<tr><td><table width="580" border="1" cellpadding="0" cellspacing="0" align="left">\n"; $t=1; $treffer["datei_url"][$i]=ereg_replace("./","",$treffer["datei_url"][$i]); $datei=fopen($treffer["datei_url"][$i],"r");  while ($t<7)  {  $zeile=fgetss($datei,1000,""); $zeile=trim($zeile);   if ($zeile!="")   {   echo "<tr><td height="16" colspan="2">";   echo "<span class="t_nummer">".$platz.".</span> <a href="".$treffer["datei_url"][$i].""><b>".$zeile."</b></a>";   break;   }  $t++;  } fclose($datei); if ($treffer["woerter"][$i]==1) { $woerter="Wort"; } else { $woerter="Wörter"; } if ($treffer["vorkommnisse"][$i]==1) { $vorkommnisse="Vorkommnis"; } else { $vorkommnisse="Vorkommnisse"; } echo "<p style="margin-top:0pt; margin-bottom:0pt" align="justify">\n"; echo $treffer["textstelle"][$i]."<br>\n"; echo "<small><b>Weitere Vorkommnisse: </b>".$treffer["mehr"][$i]."</small></p></td></tr>\n"; echo "<tr><td><a href="http://".$SERVER_NAME."/".$treffer["datei_url"][$i]."" target="_blank">\n"; echo "<img src="/main/newwindow.gif" width="14" height="10" border="0">\n";

echo " http://".$SERVER_NAME."/".$treffer["datei_url"][$i]."</a></td>\n"; echo "<td align="right"><small><b>".$treffer["woerter"][$i]." ".$woerter." | ".$treffer["vorkommnisse"][$i]." ".$vorkommnisse."</b></small></td>\n"; echo "</td></tr></table><br><br>\n"; } } }

if ($treffer_anzahl>0) { echo "Seite:   \n"; } $j=ceil($treffer_anzahl/$treffer_pro_seite)-1; for ($i=0;$i<=$j;$i++)  {  $zahl=$i+1;  if (($index+1)!=$zahl) { echo "<a href="$PHP_SELF?suchtext=$suchtext&index=".$i."&grossschreibung=".$grossschreibung."&ganzewoerter=".$ganzewoerter."">"; }  echo $zahl;  if (($index+1)!=$zahl) { echo "</a>"; }  echo "   ";  } if ($treffer_anzahl>0) { echo "\n"; } } ########### Ende des Suchmaschinenskripts ########### ?>

</td><td width="24%"></td></tr></TABLE>

</body> </html>


Danke schon jetzt

Stephan