Search Keywords
7
SecondV
This class can be used to retrieve the search words entered by an user in a search engine site that lead the user to the current page.
The class can parse the HTTP_REFERER variable if present. Then it can detect which search engine site lead the user to the current page, and extract the search words.
Currently the following engines are supported:
- Google
- Yahoo
- MSN
- AllTheWeb
- LookSmart
- AskJeeves
The class can parse the HTTP_REFERER variable if present. Then it can detect which search engine site lead the user to the current page, and extract the search words.
Currently the following engines are supported:
- Yahoo
- MSN
- AllTheWeb
- LookSmart
- AskJeeves
<?php
/***************************************************************************
*
* Author : Eric Sizemore ( www.secondversion.com & www.phpsociety.com )
* Package : Search Keywords
* Version : 1.0.3
* Copyright: (C) 2006 - 2007 Eric Sizemore
* Site : www.secondversion.com & www.phpsociety.com
* Email : esizemore05 @ gmail.com
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
***************************************************************************/
class search_keywords
{
/**
* Holds the referer string
*
* @var string
*/
var $referer;
/**
* Holds the name of the search engine
*
* @var string
*/
var $search_engine;
/**
* Holds the keywords
*
* @var mixed
*/
var $keys;
/**
* Holds the query & keyword seperator
*
* @var string
*/
var $sep;
/**
* Constructor. Sets the referer and seperator.
*
* @param void
* @return void
*/
function search_keywords()
{
if ($_SERVER['HTTP_REFERER'] OR $_ENV['HTTP_REFERER'])
{
$this->referer = urldecode(($_SERVER['HTTP_REFERER'] ? $_SERVER['HTTP_REFERER'] : $_ENV['HTTP_REFERER']));
$this->sep = (eregi('(\?q=|\?qt=|\?p=)', $this->referer)) ? '\?' : '\&';
}
}
/**
* Gets the search engine and keywords.
*
* @param void
* @return array
*/
function get_keys()
{
if (!empty($this->referer))
{
if (eregi('www\.google', $this->referer))
{
// Google
preg_match('#' . $this->sep . 'q=(.*?)\&#si', $this->referer, $this->keys);
$this->search_engine = 'Google';
}
else if (eregi('(yahoo\.com|search\.yahoo)', $this->referer))
{
// Yahoo
preg_match('#' . $this->sep . 'p=(.*?)\&#si', $this->referer, $this->keys);
$this->search_engine = 'Yahoo';
}
else if (eregi('search\.msn', $this->referer))
{
// MSN
preg_match('#' . $this->sep . 'q=(.*?)\&#si', $this->referer, $this->keys);
$this->search_engine = 'MSN';
}
else if (eregi('www\.alltheweb', $this->referer))
{
// AllTheWeb
preg_match('#' . $this->sep . 'q=(.*?)\&#si', $this->referer, $this->keys);
$this->search_engine = 'AllTheWeb';
}
else if (eregi('(looksmart\.com|search\.looksmart)', $this->referer))
{
// Looksmart
preg_match('#' . $this->sep . 'qt=(.*?)\&#si', $this->referer, $this->keys);
$this->search_engine = 'Looksmart';
}
else if (eregi('(askjeeves\.com|ask\.com)', $this->referer))
{
// AskJeeves
preg_match('#' . $this->sep . 'q=(.*?)\&#si', $this->referer, $this->keys);
$this->search_engine = 'AskJeeves';
}
else
{
$this->keys = 'Not available';
$this->search_engine = 'Unknown';
}
return array(
$this->referer,
(!is_array($this->keys) ? $this->keys : $this->keys[1]),
$this->search_engine
);
}
else
{
return array();
}
}
}
?>
/***************************************************************************
*
* Author : Eric Sizemore ( www.secondversion.com & www.phpsociety.com )
* Package : Search Keywords
* Version : 1.0.3
* Copyright: (C) 2006 - 2007 Eric Sizemore
* Site : www.secondversion.com & www.phpsociety.com
* Email : esizemore05 @ gmail.com
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
***************************************************************************/
class search_keywords
{
/**
* Holds the referer string
*
* @var string
*/
var $referer;
/**
* Holds the name of the search engine
*
* @var string
*/
var $search_engine;
/**
* Holds the keywords
*
* @var mixed
*/
var $keys;
/**
* Holds the query & keyword seperator
*
* @var string
*/
var $sep;
/**
* Constructor. Sets the referer and seperator.
*
* @param void
* @return void
*/
function search_keywords()
{
if ($_SERVER['HTTP_REFERER'] OR $_ENV['HTTP_REFERER'])
{
$this->referer = urldecode(($_SERVER['HTTP_REFERER'] ? $_SERVER['HTTP_REFERER'] : $_ENV['HTTP_REFERER']));
$this->sep = (eregi('(\?q=|\?qt=|\?p=)', $this->referer)) ? '\?' : '\&';
}
}
/**
* Gets the search engine and keywords.
*
* @param void
* @return array
*/
function get_keys()
{
if (!empty($this->referer))
{
if (eregi('www\.google', $this->referer))
{
preg_match('#' . $this->sep . 'q=(.*?)\&#si', $this->referer, $this->keys);
$this->search_engine = 'Google';
}
else if (eregi('(yahoo\.com|search\.yahoo)', $this->referer))
{
// Yahoo
preg_match('#' . $this->sep . 'p=(.*?)\&#si', $this->referer, $this->keys);
$this->search_engine = 'Yahoo';
}
else if (eregi('search\.msn', $this->referer))
{
// MSN
preg_match('#' . $this->sep . 'q=(.*?)\&#si', $this->referer, $this->keys);
$this->search_engine = 'MSN';
}
else if (eregi('www\.alltheweb', $this->referer))
{
// AllTheWeb
preg_match('#' . $this->sep . 'q=(.*?)\&#si', $this->referer, $this->keys);
$this->search_engine = 'AllTheWeb';
}
else if (eregi('(looksmart\.com|search\.looksmart)', $this->referer))
{
// Looksmart
preg_match('#' . $this->sep . 'qt=(.*?)\&#si', $this->referer, $this->keys);
$this->search_engine = 'Looksmart';
}
else if (eregi('(askjeeves\.com|ask\.com)', $this->referer))
{
// AskJeeves
preg_match('#' . $this->sep . 'q=(.*?)\&#si', $this->referer, $this->keys);
$this->search_engine = 'AskJeeves';
}
else
{
$this->keys = 'Not available';
$this->search_engine = 'Unknown';
}
return array(
$this->referer,
(!is_array($this->keys) ? $this->keys : $this->keys[1]),
$this->search_engine
);
}
else
{
return array();
}
}
}
?>
<?php
/***************************************************************************
*
* Author : Eric Sizemore ( www.secondversion.com & www.phpsociety.com )
* Package : Search Keywords
* Version : 1.0.3
* Copyright: (C) 2006 - 2007 Eric Sizemore
* Site : www.secondversion.com & www.phpsociety.com
* Email : esizemore05 @ gmail.com
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
***************************************************************************/
require_once('searchkeys.class.php');
$keys =& new search_keywords;
$keys = $keys->get_keys();
if (count($keys))
{
echo "Referring URL: $keys[0]<br />Keywords: $keys[1]<br />Search Engine: $keys[2]";
}
?>
/***************************************************************************
*
* Author : Eric Sizemore ( www.secondversion.com & www.phpsociety.com )
* Package : Search Keywords
* Version : 1.0.3
* Copyright: (C) 2006 - 2007 Eric Sizemore
* Site : www.secondversion.com & www.phpsociety.com
* Email : esizemore05 @ gmail.com
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
***************************************************************************/
require_once('searchkeys.class.php');
$keys =& new search_keywords;
$keys = $keys->get_keys();
if (count($keys))
{
echo "Referring URL: $keys[0]<br />Keywords: $keys[1]<br />Search Engine: $keys[2]";
}
?>





Extract Keywords from Search Referrals
SEO Script
$arraynum = count ($to);
$page = $to[$arraynum-1];