From 079b3ac10d5d47b9d24320337a7b477f64f060af Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sat, 28 Jul 2012 17:15:20 +0200 Subject: [PATCH] highlight queries from popular serch engines only FS#2448 --- inc/common.php | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/inc/common.php b/inc/common.php index 33da2523a..ac7e744d8 100644 --- a/inc/common.php +++ b/inc/common.php @@ -1197,8 +1197,10 @@ function getGoogleQuery() { } $url = parse_url($_SERVER['HTTP_REFERER']); - $query = array(); + // only handle common SEs + if(!preg_match('/(google|bing|yahoo|ask|duckduckgo|babylon|aol|yandex)/',$url['host'])) return ''; + $query = array(); // temporary workaround against PHP bug #49733 // see http://bugs.php.net/bug.php?id=49733 if(UTF8_MBSTRING) $enc = mb_internal_encoding(); @@ -1206,16 +1208,16 @@ function getGoogleQuery() { if(UTF8_MBSTRING) mb_internal_encoding($enc); $q = ''; - if(isset($query['q'])) - $q = $query['q']; // google, live/msn, aol, ask, altavista, alltheweb, gigablast - elseif(isset($query['p'])) - $q = $query['p']; // yahoo - elseif(isset($query['query'])) - $q = $query['query']; // lycos, netscape, clusty, hotbot - elseif(preg_match("#a9\.com#i", $url['host'])) // a9 - $q = urldecode(ltrim($url['path'], '/')); - - if($q === '') return ''; + if(isset($query['q'])){ + $q = $query['q']; + }elseif(isset($query['p'])){ + $q = $query['p']; + }elseif(isset($query['query'])){ + $q = $query['query']; + } + $q = trim($q); + + if(!$q) return ''; $q = preg_split('/[\s\'"\\\\`()\]\[?:!\.{};,#+*<>\\/]+/', $q, -1, PREG_SPLIT_NO_EMPTY); return $q; } -- GitLab