Jump to content

Extract the Search engine Keyword, visitor search for.


natasha_thomas

Recommended Posts

Friends,

 

I want to extract the Search Keyword from the URL, a visitor came from. I am using a PHP CMS and want to show the Keyword on my Blog.

 

So if they search "abcd" from google, i want to extract "abcd" and echo on my blog.

 

Here is the coding i could got hold of, but its not working, not echoing anything

 

<?php

function pk_stt2_function_get_delimiter($ref) {
    $search_engines = array('google.com' => 'q',
		'go.google.com' => 'q',
		'images.google.com' => 'q',
		'video.google.com' => 'q',
		'news.google.com' => 'q',
		'blogsearch.google.com' => 'q',
		'maps.google.com' => 'q',
		'local.google.com' => 'q',
		'search.yahoo.com' => 'p',
		'search.msn.com' => 'q',
		'bing.com' => 'q',
		'msxml.excite.com' => 'qkw',
		'search.lycos.com' => 'query',
		'alltheweb.com' => 'q',
		'search.aol.com' => 'query',
		'search.iwon.com' => 'searchfor',
		'ask.com' => 'q',
		'ask.co.uk' => 'ask',
		'search.cometsystems.com' => 'qry',
		'hotbot.com' => 'query',
		'overture.com' => 'Keywords',
		'metacrawler.com' => 'qkw',
		'search.netscape.com' => 'query',
		'looksmart.com' => 'key',
		'dpxml.webcrawler.com' => 'qkw',
		'search.earthlink.net' => 'q',
		'search.viewpoint.com' => 'k',
		'mamma.com' => 'query');
    $delim = false;
    if (isset($search_engines[$ref])) {
        $delim = $search_engines[$ref];
    } else {
        if (strpos('ref:'.$ref,'google'))
            $delim = "q";
	elseif (strpos('ref:'.$ref,'search.atomz.'))
            $delim = "sp-q";
	elseif (strpos('ref:'.$ref,'search.msn.'))
            $delim = "q";
	elseif (strpos('ref:'.$ref,'search.yahoo.'))
            $delim = "p";
        elseif (preg_match('/home\.bellsouth\.net\/s\/s\.dll/i', $ref))
            $delim = "bellsouth";
    }
    return $delim;
}

/**
* retrieve the search terms from search engine query
* */ 
function pk_stt2_function_get_terms($d) {
    $terms       = null;
    $query_array = array();
    $query_terms = null;
    $query = explode($d.'=', $_SERVER['HTTP_REFERER']);
    $query = explode('&', $query[1]);
    $query = urldecode($query[0]);
    $query = str_replace("'", '', $query);
    $query = str_replace('"', '', $query);
    $query_array = preg_split('/[\s,\+\.]+/',$query);
    $query_terms = implode(' ', $query_array);
    $terms = htmlspecialchars(urldecode(trim($query_terms)));
    return $terms;
}

/**
* get the referer
* */ 
function pk_stt2_function_get_referer() {
    if (!isset($_SERVER['HTTP_REFERER']) || ($_SERVER['HTTP_REFERER'] == '')) return false;
    $referer_info = parse_url($_SERVER['HTTP_REFERER']);
    $referer = $referer_info['host'];
    if(substr($referer, 0, 4) == 'www.')
        $referer = substr($referer, 4);
    return $referer;
}



	$referer = pk_stt2_function_get_referer();
	if (!$referer) return false;
	$delimiter = pk_stt2_function_get_delimiter($referer);
	if( $delimiter ){
		$term = pk_stt2_function_get_terms($delimiter);		
	}
echo $term;
?>

 

 

May someone help?

 

Natasha T

 

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.