Getting the keyword that is used when my site is visited through a search engine

Status
Not open for further replies.

matthew1471

New member
May 13, 2007
242
0
0
Bournemouth, UK.
Hi,

When my site is visited through organic search results, how can I pull the keyword / search string that was used?

Can I use $searchstring = $_POST[‘keyword’]

Will that work for every search engine? Or am I on completely the wrong track?

Ta

Matt
 


exactly what sleppylee said. Do a print_r($_SERVER); and you will see that it will show what keyword they used to reach your site, based on the referred address. I would suggest parsing this out with preg_match() after. Let me know if you need some help
 
function get_search_phrase($referer){

$key_start = 0;
$search_phrase = "";

// used by dogpile, excite, webcrawler, metacrawler
if (strpos($referer, '/search/web/') !== false) $key_start = strpos($referer, '/search/web/') + 12;

// used by chubba
if (strpos($referer, 'arg=') !== false) $key_start = strpos($referer, 'arg=') + 4;

// used by dmoz
if (strpos($referer, 'search=') !== false) $key_start = strpos($referer, 'query=') + 7;

// used by looksmart
if (strpos($referer, 'qt=') !== false) $key_start = strpos($referer, 'qt=') + 3;

// used by scrub the web
if (strpos($referer, 'keyword=') !== false) $key_start = strpos($referer, 'keyword=') + 8;

// used by overture, hogsearch
if (strpos($referer, 'keywords=') !== false) $key_start = strpos($referer, 'keywords=') + 9;

// used by mamma, lycos, kanoodle, snap, whatuseek
if (strpos($referer, 'query=') !== false) $key_start = strpos($referer, 'query=') + 6;

// don't allow encrypted key words by aol
if (strpos($referer, 'encquery=') !== false) $key_start = 0;

// used by ixquick
if (strpos($referer, '&query=') !== false) $key_start = strpos($referer, '&query=') + 7;

// used by aol
if (strpos($referer, 'qry=') !== false) $key_start = strpos($referer, 'qry=') + 4;

// used by yahoo, hotbot
if (strpos($referer, 'p=') !== false) $key_start = strpos($referer, 'p=') + 2;

// used by google, msn, alta vista, ask jeeves, all the web, teoma, wisenut, search.com
if (strpos($referer, 'q=') !== false) $key_start = strpos($referer, 'q=') + 2;

// if present, get the search phrase from the referer
if ($key_start > 0){
if (strpos($referer, '&', $key_start) !== false){
$search_phrase = substr($referer, $key_start, (strpos($referer, '&', $key_start) - $key_start));

} elseif (strpos($referer, '/search/web/') !== false){

if (strpos($referer, '/', $key_start) !== false){
$search_phrase = urldecode(substr($referer, $key_start, (strpos($referer, '/', $key_start) - $key_start)));
} else {
$search_phrase = urldecode(substr($referer, $key_start));
}

} else {
$search_phrase = substr($referer, $key_start);
}
}

$search_phrase = urldecode($search_phrase);
return $search_phrase;

}

Should do the trick
 
Status
Not open for further replies.