RE: [PHP] Re: getting query string from referer website
| From: | Philip Olson | Date: | Mon, 28 Jun 2004 14:20:09 +0000 |
| Subject: | RE: [PHP] Re: getting query string from referer website | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-189160@lists.php.net to get a copy of this message | ||
> $referer =
>
> "http://search.yahoo.com/search?p=pianist+web+sites+design&ei=UTF-8&fr=fp-ta
> b-web-t&cop=mss&tab=";
> if (strpos($referer, "q=") != FALSE) { $query = "q=";} else if
> (strpos($referer, "p=") != FALSE) { $query = "p=";}
> $searcharray = explode("&", substr($referer, (strpos($referer, $query)+2)));
> $searchstring = urldecode($searcharray[0]);
> echo "Your search words are: $searchstring<br /><br />";
Consider this example, not well tested but it should
also work:
// This is the key, these functions are sexy
$url = parse_url($referer);
parse_str($url['query'], $query);
$search_keywords = '';
if (is_array($query)) {
foreach ($query as $type => $keywords) {
if (in_array($type, array('q','query','p','qkw'))) {
$search_keywords = urldecode($keywords);
break;
}
}
}
if (empty($search_keywords)) {
echo "Unknown keywords, perhaps you didn't use a SE";
} else {
echo "Your searchwords are: {$search_keywords} <br />\n";
echo "You used the host: {$url['host']} to get here.";
}
Regards,
Philip