Skip to content


PHP function to get search query

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;

} // end get_search_phrase 


One Response

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

Continuing the Discussion

  1. hack/ » Blog Archive » PHP - Get the Search Query from the Referer linked to this post on March 14

    [...] View the code here [...]



Some HTML is OK

or, reply to this post via trackback.