Siechfred: Google Suchbegriffe auf der einer Webseite unterlegen

Beitrag lesen

Tag Sven.

Selber programmieren ist Trumpf. Den Referrer nach Google zu durchsuchen, die darin enthaltenen Suchbegriffe zu extrahieren und dann globales Suchen-Ersetzen im innerHTML des Body durchzuführen sollte ja nicht allzu schwer sein.

Da nutze ich die Gelegenheit, meine PHP-Funktion vorzustellen, vielleicht hat ja noch jemand Verwendung dafür:

function extract_words($uri) {  
  $charset = "UTF-8";  
  $qs = parse_url($uri);  
  $query_str = urldecode(trim($qs["query"]));  
  $query_arr = explode("&", $query_str);  
  $anz = count($query_arr);  
  for($i=0;$i<$anz;$i++) {  
    $pos = strpos($query_arr[$i],"q=");  
    if($pos !== false) {  
      $keys = substr($query_arr[$i],2,strlen($query_arr[$i]));  
    }  
    $lng = strpos($query_arr[$i], "ie=");  
    if($lng !== false) {  
      $charset = strtoupper(substr($query_arr[$i],3,strlen($query_arr[$i])));  
    }  
  }  
  if($charset == "ISO-8859-1") {  
    $keywords = utf8_encode($keys);  
  }  
  else {  
    $keywords = $keys;  
  }  
  $trans = array (':' => "", '"' => "", "'" => "", "<" => "", ">" => "", " -" => "", "(" => "", ")" => "", "~" => "", "*" => "");  
  return strtr($keywords, $trans);  
}

Die Funktion extrahiert aus den Referrern die Suchwörter und eliminiert störende Sonderzeichen (soweit erforderlich, das Array $trans kann nach Bedarf angepasst werden) und funktioniert bisher tadellos bei den von brisbane.t-online, google, msn und yahoo übermittelten Referrern. Lediglich das Umwandeln von ISO-8859-1 nach UTF-8 geht nur bei Google, bei den anderen habe ich noch nicht herausgefunden, wie der Parameter heißt, nach dem ich suchen muss. Aber eleganterweise übermitteln (zumindest nach meinen Logfiles zu urteilen) ausnahmslos alle UTF-8 außer Google, der in seltenen Ausnahmefällen ISO-8959-1 übermittelt hat.

Vorteil ist, dass man nicht von Javascript abhängig ist und so die Seite noch vor dem Ausliefern durch den Server einfärben kann. Perfekt ist die Funktion sicher nicht, aber sie leistet mir gute Dienste. Ein paar Beispiele zur Demonstration:

Google-Suche nach "Pensionszusagen, Abfindungsklauseln, 31.12.2005, Anpassung" (3. Ergebnis)
Suche nach "FG Münster Aktenzeichen 12 K 6263/03 E" (3. Ergebnis)
T-Online-Suche nach "Aktenzeichen FG Münster: 12 K 6263/03 E" (3. Ergebnis)

Siechfred