Referer URL 이용하여 검색엔진 키워드 뽑아내기
다음 함수는 $_SERVER['HTTP_REFERER'] 로 검색엔진의 키워드를 뽑아내는 함수이다.
function search_engine_query_string($url = false) {
if(!$url) {
$url = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : false;
}
if($url == false) {
return '';
}
$parts = parse_url($url);
parse_str($parts['query'], $query);
$search_engines = array(
'naver' => 'query',
'daum' => 'q',
'bing' => 'q',
'google' => 'q',
'yahoo' => 'p'
);
preg_match('/(' . implode('|', array_keys($search_engines)) . ')\./', $parts['host'], $matches);
if (isset($matches[1]) && isset($query[$search_engines[$matches[1]]])) {
$return_str = $query[$search_engines[$matches[1]]];
if (preg_match('/daum/i', $parts['host']) || preg_match('/ad.search.naver.com/i', $parts['host']) || ( preg_match('/search.naver.com/i', $parts['host']) && !preg_match('/ie=utf8/i', $url) ) ) {
$return_str = iconv("euc-kr", "utf-8", $return_str);
}
return str_replace(" ", "", $return_str);
} else return "";
//return isset($matches[1]) && isset($query[$search_engines[$matches[1]]]) ? $query[$search_engines[$matches[1]]] : '';
}
키워드가 UTF8이 아닌경우 iconv 함수를 이용하여 캐릭터셋을 변경하여 준다.