Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

PHP suche - suchresultate in einem neuen fenster anzeigen?

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
croxxx69
PostRank 4
PostRank 4
Beiträge: 190
Registriert: 08.10.2008, 15:13

Beitrag von croxxx69 » 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:

Code: Alles auswählen

<?php
// Domain-Name für die Anzeige in den Resultaten
$DomainName = "http&#58;//".GetParam&#40;"SERVER_NAME", "S"&#41;;

// Root-Verzeichnis für den Zugriff auf die Dateien am Server
// Beispiel&#58; $RootDir=dirname&#40;"/htdocs"&#41;;
$RootDir = dirname&#40;GetParam&#40;"SCRIPT_FILENAME", "S"&#41;&#41;;

// Dateiname für die Protokollierung der Suchbegriffe
// &#40;kein Dateiname zum deaktivieren der Protokollierung&#41;
// z.B. "../../files/logs/search_words.log"
$SearchWordLog = "";

// Länge der Textfragmente um die Fundstellen &#40;in Zeichen&#41;
$Found_Piece_Len = 50;

// Erlaubtes Verzeichnis
// Z.B.&#58; $AllowedDirs = $RootDir."/content";
$AllowedDir = $RootDir;

// Erlaubte Erweiterungen als Array, getrennt mit einem Beistrich
// Z.B.&#58; $AllowedExts=array&#40;".php",".php3",".php4",".htm",".html",".ihtml",".shtm",".shtml",".txt"&#41;;
$AllowedExts = array&#40;".php",".html",".shtml"&#41;;

// Deutsche Umlaute dekodieren &#40;dadurch wird beispielsweise "&auml;" zu "ä"&#41;
$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&#40;stripslashes&#40;GetParam&#40;"q", "P"&#41;&#41;&#41;;
  if &#40;!$SearchTerm&#41; $SearchTerm = FormatSearchString&#40;stripslashes&#40;GetParam&#40;"q", "G"&#41;&#41;&#41;;
?>

<table border=0 cellspacing=0 cellpadding=0><tr><td>
<form class=formbox action="<?php echo GetParam&#40;"PHP_SELF", "S"&#41;; ?>" method="post">
<table border=0 cellspacing=0 cellpadding=1>
<tr>
  <td class=formfield nowrap>Traži&#58;&nbsp;</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&#273;i" name="submit"></td></tr>
</table>
</form>
</td></tr></table>

<br>

<?php

if&#40;$SearchTerm&#41;&#123;
  // Protokollierung der Suchbegriffe
  if&#40;file_exists&#40;$SearchWordLog&#41;&#41; &#123;
    $fp=@fopen&#40;$SearchWordLog,"a"&#41;;
    if&#40;$fp&#41; &#123;
      flock&#40;$fp,2&#41;;
      fputs&#40;$fp,$SearchTerm."\r\n",256&#41;;
      flock&#40;$fp,3&#41;;
      fclose&#40;$fp&#41;;
    &#125;
  &#125;

  echo "<h4>Rezultati</h4>\n";

  $files=ReadDirs&#40;$AllowedDir,$AllowedExts&#41;;

  $ResultCount=0;
  if&#40;$files && $SearchTerm&#41;&#123;
    foreach&#40;$files as $f&#41;&#123;
      if&#40;SearchFile&#40;$f,$SearchTerm&#41;&#41;&#123;
        $fn=$f;
        if&#40;substr&#40;$f,0,strlen&#40;$RootDir&#41;&#41;==$RootDir&#41; $fn=$DomainName.substr&#40;$f,strlen&#40;$RootDir&#41;&#41;;
        $ResultCount++;
        echo $ResultCount.". ";
        echo '<a href="'.$fn.'"';
        if &#40;$LinkTargetBlank&#41; echo ' target="_blank"';
        echo "><b>".$Site_Title."</b></a><br>\n";
        if&#40;$Meta_Description&#41; echo $Meta_Description."<br>\n";
        echo "<span class=small><span class=grey>".$Site_Content."</span></span><br>\n";
        echo "<span class=grey>Datei&#58;</span> <span class=green>".$fn."</span>";
        echo " - ";
        echo "<span class=grey>Größe&#58;</span> <span class=green>".round&#40;filesize&#40;$f&#41;/1024,2&#41;." KB</span>";
        echo "<br>";
        echo "<br>\n";
      &#125;
    &#125;
    clearstatcache&#40;&#41;;
  &#125;
  echo "Prona&#273;eni su&#58; <b>".$ResultCount."</b> stranica.<br>\n";
&#125;

function SearchFile&#40;$url,$search&#41;&#123;
  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&#40;$url&#41;;
  while&#40;list&#40;$key,$val&#41;=each&#40;$gmtarray&#41;&#41;&#123;
    switch&#40;strtolower&#40;$key&#41;&#41;&#123;
      case "title"&#58; $Meta_Title=$val; break;
      case "keywords"&#58; $Meta_Keywords=$val; break;
      case "description"&#58; $Meta_Description=$val; break;
      case "robots"&#58; $Meta_Robots=strtolower&#40;$val&#41;; break;
      case "revisit"&#58; $Meta_Revisit=strtolower&#40;$val&#41;; break;
      case "revisit-after"&#58; $Meta_RevisitAfter=strtolower&#40;$val&#41;; break;
    &#125;
  &#125;
  $Meta_Description="";

  // *** Dateiinhalt einlesen &#40;bzw. Ausgabe bei PHP&#41; ***
  $fp=@fopen&#40;$url,"r"&#41;;
  if&#40;!$fp&#41; return false;
  $content="";
  while&#40;!feof&#40;$fp&#41;&#41;&#123;
    $content.=fgets&#40;$fp,10240&#41;;
  &#125;
  fclose&#40;$fp&#41;;
  
  $content = preg_replace&#40;"/<\?.*?\?>/s", "", $content&#41;;

  $content = $Meta_Title." ".$Meta_Keywords." ".$Meta_Description." ".trim&#40;$content&#41;;

  // *** Seitentitel ermitteln ***
  $Site_Title = GetSiteTitle&#40;$content&#41;;
  if&#40;!$Site_Title&#41; $Site_Title = $Meta_Title;
  if&#40;!$Site_Title&#41; $Site_Title = basename&#40;$url&#41;;

  if &#40;substr&#40;$content, 0, strlen&#40;$Site_Title&#41;&#41; == $Site_Title&#41; $content = substr&#40;$content, strlen&#40;$Site_Title&#41;&#41;;

  $content = strip_tags&#40;$content&#41;;
  $content = str_replace&#40;"\n", " ", $content&#41;;
  $content = str_replace&#40;"\r", "", $content&#41;;
  $sc = " ".trim&#40;$content&#41;;

  while&#40;strpos&#40;$sc,"  "&#41;&#41;&#123;
    $sc=str_replace&#40;"  "," ",$sc&#41;;
  &#125;
  $content=$sc;

  // Deutsche Umlaute konvertieren
  if&#40;$ActivateUmlaut&#41;&#123;
    $content=str_replace&#40;"&auml;","ä",$content&#41;;
    $content=str_replace&#40;"&ouml;","ö",$content&#41;;
    $content=str_replace&#40;"&uuml;","ü",$content&#41;;
    $content=str_replace&#40;"&Auml;","Ä",$content&#41;;
    $content=str_replace&#40;"&Ouml;","Ö",$content&#41;;
    $content=str_replace&#40;"&Uuml;","Ü",$content&#41;;
    $content=str_replace&#40;"&szlig;","ß",$content&#41;;
  &#125;
  $content=str_replace&#40;"&euro;","€",$content&#41;;
  $content=str_replace&#40;"&nbsp;"," ",$content&#41;;

  // *** Suchen ***
  $found=false;
  $a=explode&#40;" ",strtolower&#40;$search&#41;&#41;;
  $lowcontent=strtolower&#40;$content&#41;;
  $result_text="";
  foreach&#40;$a as $arg&#41;&#123;
    $p0=strpos&#40;$lowcontent,$arg&#41;;
    if&#40;$p0>0&#41;&#123;
      $p1=$Found_Piece_Len;
      $p2=$Found_Piece_Len;
      if &#40;&#40;$p0-$p1&#41; < 0&#41; $p1=$p0;
      $result_text.="...".substr&#40;$content,$p0-$p1,$p1&#41;."<b class=red>";
      $result_text.=substr&#40;$content,$p0,strlen&#40;$arg&#41;&#41;."</b>".substr&#40;$content,$p0+strlen&#40;$arg&#41;,$p2&#41;;
      $found=true;
    &#125;else&#123;
      $found=false;
      break;
    &#125;
  &#125;

  if&#40;!$found&#41; return false;
  if&#40;$result_text&#41; $result_text.="...";

  $Site_Content=$result_text;

  return true;
&#125;

function FormatSearchString&#40;$search&#41;&#123;
  $chars=".&#58;-_,;!§$%&/&#40;&#41;=#+*~'?\&#91;|&#93;&#123;^°&#125;²³µ@€ š&#273;ž&#263;&#269;äöüß1234567890abcdefghijklmnopqrstuvwxyz";
  $s="";
  for&#40;$i=0;$i<strlen&#40;$search&#41;;$i++&#41;&#123;
    $a=substr&#40;$search,$i,1&#41;;
    if&#40;stristr&#40;$chars,$a&#41;&#41; $s.=$a;
  &#125;
  while&#40;strpos&#40;$s,"  "&#41;&#41;&#123;
    $s=str_replace&#40;"  "," ",$s&#41;;
  &#125;
  return trim&#40;$s&#41;;
&#125;

function ReadDirs&#40;$d,$ExtArray&#41;&#123;
  $fileArray=array&#40;&#41;;
  if&#40;$hDir = opendir&#40;$d&#41;&#41;&#123;
    while&#40;$file=readdir&#40;$hDir&#41;&#41;&#123;
      if&#40;!is_dir&#40;$d."/".$file&#41;&#41;&#123;
        // *** .*-Dateien &#40;zB .htaccess&#41; ignorieren ***
        if&#40;substr&#40;$file,0,1&#41;!="."&#41;&#123;
              foreach&#40;$ExtArray as $ext&#41;&#123;
                if&#40;substr&#40;strtolower&#40;$file&#41;,strlen&#40;$file&#41;-strlen&#40;$ext&#41;,strlen&#40;$ext&#41;&#41;==strtolower&#40;$ext&#41;&#41;&#123;
                    array_push&#40;$fileArray,$d."/".$file&#41;;
                    continue;
                &#125;
              &#125;
          &#125;
      &#125;
    &#125;
    closedir&#40;$hDir&#41;;
  &#125;
  return $fileArray;
&#125;

function GetSiteTitle&#40;$content&#41;
&#123;
  $p1=strpos&#40;strtolower&#40;$content&#41;,"<title>"&#41;;
  if&#40;!$p1&#41; return false;
  $p2=strpos&#40;strtolower&#40;$content&#41;,"</title>",$p1&#41;;
  if&#40;!$p2&#41; return false;
  return trim&#40;substr&#40;$content,$p1+7,$p2-$p1-7&#41;&#41;;
&#125;

function GetParam&#40;$ParamName, $Method = "P", $DefaultValue = ""&#41; &#123;
  if &#40;$Method == "P"&#41; &#123;
    if &#40;isset&#40;$_POST&#91;$ParamName&#93;&#41;&#41; return $_POST&#91;$ParamName&#93;; else return $DefaultValue;
  &#125; else if &#40;$Method == "G"&#41; &#123;
    if &#40;isset&#40;$_GET&#91;$ParamName&#93;&#41;&#41; return $_GET&#91;$ParamName&#93;; else return $DefaultValue;
  &#125; else if &#40;$Method == "S"&#41; &#123;
    if &#40;isset&#40;$_SERVER&#91;$ParamName&#93;&#41;&#41; return $_SERVER&#91;$ParamName&#93;; else return $DefaultValue;
  &#125;
&#125;

?>



</body>
</html>
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!