Get keyword from a (search engine) referrer url using PHP
keyword, php, preg-match, url
Solution
If you're using PHP5 take a look at http://php.net/parse_url and http://php.net/parse_str
Example:
// The referrer
$referrer = 'http://www.google.com/search?hl=en&q=learn+php+2&client=firefox';
// Parse the URL into an array
$parsed = parse_url( $referrer, PHP_URL_QUERY );
// Parse the query string into an array
parse_str( $parsed, $query );
// Output the result
echo $query['q'];
Problem
I am trying to get the search keyword from a referrer url. Currently, I am using the following code for Google urls. But sometimes it is not working... ``` $query_get = "(q|p)"; $referrer = "http://www.google.com/search?hl=en&q=learn+php+2&client=firefox"; preg_match('/[?&]'.$query_get.'=(.*?)[&]/',$referrer,$search_keyword); ``` Is there another/clean/working way to do this? Thank you, Prasad