Hi ich habe im Internet eine Suchmaschine gefunden die mit PHP funktioniert... Hier ist der Code
Ich binde Suchfunktion in alle Seiten ein. Ich bräuchte jetzt aber wie ein Template... Denn das Problem ist, wenn ich eine Suchanfrage mache, kommt zwar die Ausgabe. Aber der Es geht einfach über den Text von der normalen Seite... Also wer mich nicht verstanden hat, kann auf www.schiendorfer.info das Problem sehen
PHP-Code:
<table width="26%" border="0" cellpadding="2" cellspacing="0">
<tr>
<td width=100%><form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"><input type="text" name="p_search" size=15 maxlength=250 value="<?php echo $search; ?>">
<input type="submit" value="Suchen" name="submit"></form></td></tr>
</table>
<br>
<br>
<div id="Suche">
<?php
if($search){
// Protokollierung der Suchbegriffe
if(file_exists($SearchWordLog)) {
$fp=@fopen($SearchWordLog,"a");
if($fp) {
flock($fp,2);
fputs($fp,$search."\r\n",256);
flock($fp,3);
fclose($fp);
}
}
echo "<h4>Ergebnis:</h4>\n";
$files=ReadDirs($AllowedDirs,$AllowedExts);
$ResultCount=0;
if($files && $search){
foreach($files as $f){
if(SearchFile($f,$search)){
$fn=$f;
if(substr($f,0,strlen($RootDir))==$RootDir) $fn=$DomainName.substr($f,strlen($RootDir));
$ResultCount++;
if($Show_ResultNumber) echo $ResultCount.". ";
echo "<a href=\"".$fn."\"><b>".$Site_Title."</b></a><br>\n";
if($Meta_Description) echo $Meta_Description."<br>\n";
if($Site_Content) echo "<span id=small><span id=grey>".$Site_Content."</span></span><br>\n";
if($Show_Filename) echo "<span id=grey>Datei:</span> <span id=green>".$fn."</span>";
if($Show_Filesize){
if($Show_Filename) echo " - ";
echo "<span id=grey>Größe:</span> <span id=green>".round(filesize($f)/1024,2)." KB</span>";
}
if($Show_Filename || $Show_Filesize) echo "<br>";
echo "<br>\n";
}
}
clearstatcache();
}
echo "Es wurden <b>".$ResultCount."</b> Seiten gefunden.<br>\n";
}
function SearchFile($url,$search){
global $Show_Description;
global $Found_Piece_Len;
global $Activate_Umlaut;
global $RootDir;
global $DomainName;
global $Site_Title;
global $Site_Content;
global $Meta_Description;
global $Meta_Robots;
$Site_Title="";
$Meta_Keywords="";
$Site_Content="";
$Meta_Description="";
$Meta_Robots="";
// *** Meta-Angaben ermitteln ***
$gmtarray=get_meta_tags($url);
while(list($key,$val)=each($gmtarray)){
switch(strtolower($key)){
case "title": $Meta_Title=$val; break;
case "keywords": $Meta_Keywords=$val; break;
case "description": $Meta_Description=$val; break;
case "robots": $Meta_Robots=strtolower($val); break;
case "revisit": $Meta_Revisit=strtolower($val); break;
case "revisit-after": $Meta_RevisitAfter=strtolower($val); break;
}
}
if(!$Show_Description) $Meta_Description="";
if(eregi("noindex",$Meta_Robots)) return false;
// *** Dateiinhalt einlesen (bzw. Ausgabe bei PHP) ***
$fp=@fopen($url,"r");
if(!$fp) return false;
$content="";
while(!feof($fp)){
$content.=fgets($fp,10240);
}
fclose($fp);
$content=str_replace("<?","<",$content);
$content=str_replace("?>",">",$content);
$content=trim($content);
$content=$Site_Title." ".$Meta_Title." ".$Meta_Keywords." ".$Meta_Description." ".$content;
// *** Seitentitel ermitteln ***
$Site_Title=GetSiteTitle($content);
if(!$Site_Title) $Site_Title=$Meta_Title;
if(!$Site_Title) $Site_Title=basename($url);
if(substr($content,0,strlen($Site_Title))==$Site_Title) $content=substr($content,strlen($Site_Title));
$content=strip_tags($content);
$content=str_replace("\n"," ",$content);
$content=str_replace("\r","",$content);
$sc=" ".trim($content);
while(strpos($sc," ")){
$sc=str_replace(" "," ",$sc);
}
$content=$sc;
// Deutsche Umlaute konvertieren
if($Activate_Umlaut){
$content=str_replace("ä","ä",$content);
$content=str_replace("ö","ö",$content);
$content=str_replace("ü","ü",$content);
$content=str_replace("Ä","Ä",$content);
$content=str_replace("Ö","Ö",$content);
$content=str_replace("Ü","Ü",$content);
$content=str_replace("ß","ß",$content);
}
$content=str_replace("€","€",$content);
// *** Suchen ***
$found=false;
$a=explode(" ",strtolower($search));
$lowcontent=strtolower($content);
$result_text="";
foreach($a as $arg){
$p0=strpos($lowcontent,$arg);
if($p0>0){
$p1=$Found_Piece_Len;
$p2=$Found_Piece_Len;
if(($p0-$p1)<0) $p1=$p0;
$result_text.="...".substr($content,$p0-$p1,$p1)."<b id=red>";
$result_text.=substr($content,$p0,strlen($arg))."</b>".substr($content,$p0+strlen($arg),$p2);
$found=true;
}else{
$found=false;
break;
}
}
if(!$found) return false;
if($result_text) $result_text.="...";
$Site_Content=$result_text;
return true;
}
function FormatSearchString($search){
$chars=".:-_,;!§$%&/()=#+*~'?\[|]{^°}²³µ@€ äöüß1234567890abcdefghijklmnopqrstuvwxyz";
$s="";
for($i=0;$i<strlen($search);$i++){
$a=substr($search,$i,1);
if(stristr($chars,$a)) $s.=$a;
}
while(strpos($s," ")){
$s=str_replace(" "," ",$s);
}
return trim($s);
}
function ReadDirs($DirArray,$ExtArray){
$fileArray=array();
foreach($DirArray as $d){
if($hDir = opendir($d)){
while($file=readdir($hDir)){
if(!is_dir($d."/".$file)){
// *** .*-Dateien (zB .htaccess) ignorieren ***
if(substr($file,0,1)!="."){
foreach($ExtArray as $ext){
if(substr(strtolower($file),strlen($file)-strlen($ext),strlen($ext))==strtolower($ext)){
array_push($fileArray,$d."/".$file);
continue;
}
}
}
}
}
closedir($hDir);
}
}
return $fileArray;
}
function GetSiteTitle($content)
{
$p1=strpos(strtolower($content),"<title>");
if(!$p1) return false;
$p2=strpos(strtolower($content),"</title>",$p1);
if(!$p2) return false;
return trim(substr($content,$p1+7,$p2-$p1-7));
}
?>

Kommentar