PHP suche - suchresultate in einem neuen fenster anzeigen?
Verfasst: 10.11.2009, 19:55
hallo,
wollte die google suche (fuer die eigene seite) nicht auf meine seite installieren weil die sehr unuebersichtlich ist, darum habe ich diese suche gefunden:
eigentlich ganz ok, nur leider oeffnet mir die suche im selben fenster die ergebnisse, was mir leider nicht gefaellt... wie kann ich dies aendern?
lg!
wollte die google suche (fuer die eigene seite) nicht auf meine seite installieren weil die sehr unuebersichtlich ist, darum habe ich diese suche gefunden:
Code: Alles auswählen
<?php
// Domain-Name für die Anzeige in den Resultaten
$DomainName = "http://".GetParam("SERVER_NAME", "S");
// Root-Verzeichnis für den Zugriff auf die Dateien am Server
// Beispiel: $RootDir=dirname("/htdocs");
$RootDir = dirname(GetParam("SCRIPT_FILENAME", "S"));
// Dateiname für die Protokollierung der Suchbegriffe
// (kein Dateiname zum deaktivieren der Protokollierung)
// z.B. "../../files/logs/search_words.log"
$SearchWordLog = "";
// Länge der Textfragmente um die Fundstellen (in Zeichen)
$Found_Piece_Len = 50;
// Erlaubtes Verzeichnis
// Z.B.: $AllowedDirs = $RootDir."/content";
$AllowedDir = $RootDir;
// Erlaubte Erweiterungen als Array, getrennt mit einem Beistrich
// Z.B.: $AllowedExts=array(".php",".php3",".php4",".htm",".html",".ihtml",".shtm",".shtml",".txt");
$AllowedExts = array(".php",".html",".shtml");
// Deutsche Umlaute dekodieren (dadurch wird beispielsweise "ä" zu "ä")
$ActivateUmlaut = true;
// Links zu den gefundenen Seiten in einem neuen Tab/Fenster öffnen
$LinkTargetBlank = true;
// *****************************************************************************
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Suche</title>
<meta name="title" content="Suche">
<meta name="author" content="Werner Rumpeltesz">
<meta name="robots" content="noindex,nofollow">
<meta http-equiv="content-language" content="de-at">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel=stylesheet type="text/css" href="search.css">
</head>
<body>
<h4>Tražilica</h4>
<?php
$SearchTerm = FormatSearchString(stripslashes(GetParam("q", "P")));
if (!$SearchTerm) $SearchTerm = FormatSearchString(stripslashes(GetParam("q", "G")));
?>
<table border=0 cellspacing=0 cellpadding=0><tr><td>
<form class=formbox action="<?php echo GetParam("PHP_SELF", "S"); ?>" method="post">
<table border=0 cellspacing=0 cellpadding=1>
<tr>
<td class=formfield nowrap>Traži: </td><td><input type="text" name="q" size=40 maxlength=250 value="<?=$SearchTerm?>"></td></tr>
<tr><td></td><td class=formfield><input type="submit" value="Pronađi" name="submit"></td></tr>
</table>
</form>
</td></tr></table>
<br>
<?php
if($SearchTerm){
// Protokollierung der Suchbegriffe
if(file_exists($SearchWordLog)) {
$fp=@fopen($SearchWordLog,"a");
if($fp) {
flock($fp,2);
fputs($fp,$SearchTerm."\r\n",256);
flock($fp,3);
fclose($fp);
}
}
echo "<h4>Rezultati</h4>\n";
$files=ReadDirs($AllowedDir,$AllowedExts);
$ResultCount=0;
if($files && $SearchTerm){
foreach($files as $f){
if(SearchFile($f,$SearchTerm)){
$fn=$f;
if(substr($f,0,strlen($RootDir))==$RootDir) $fn=$DomainName.substr($f,strlen($RootDir));
$ResultCount++;
echo $ResultCount.". ";
echo '<a href="'.$fn.'"';
if ($LinkTargetBlank) echo ' target="_blank"';
echo "><b>".$Site_Title."</b></a><br>\n";
if($Meta_Description) echo $Meta_Description."<br>\n";
echo "<span class=small><span class=grey>".$Site_Content."</span></span><br>\n";
echo "<span class=grey>Datei:</span> <span class=green>".$fn."</span>";
echo " - ";
echo "<span class=grey>Größe:</span> <span class=green>".round(filesize($f)/1024,2)." KB</span>";
echo "<br>";
echo "<br>\n";
}
}
clearstatcache();
}
echo "Pronađeni su: <b>".$ResultCount."</b> stranica.<br>\n";
}
function SearchFile($url,$search){
global $Found_Piece_Len;
global $ActivateUmlaut;
global $RootDir;
global $DomainName;
global $Site_Title;
global $Meta_Title;
global $Site_Content;
global $Meta_Description;
global $Meta_Robots;
$Site_Title="";
$Meta_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;
}
}
$Meta_Description="";
// *** 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 = preg_replace("/<\?.*?\?>/s", "", $content);
$content = $Meta_Title." ".$Meta_Keywords." ".$Meta_Description." ".trim($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($ActivateUmlaut){
$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);
$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 class=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($d,$ExtArray){
$fileArray=array();
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));
}
function GetParam($ParamName, $Method = "P", $DefaultValue = "") {
if ($Method == "P") {
if (isset($_POST[$ParamName])) return $_POST[$ParamName]; else return $DefaultValue;
} else if ($Method == "G") {
if (isset($_GET[$ParamName])) return $_GET[$ParamName]; else return $DefaultValue;
} else if ($Method == "S") {
if (isset($_SERVER[$ParamName])) return $_SERVER[$ParamName]; else return $DefaultValue;
}
}
?>
</body>
</html>
lg!