본문 바로가기

Referer URL 이용하여 검색엔진 키워드 뽑아내기

MintState 2012년 2월 10일 오후 2:22 조회 15621

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 함수를 이용하여 캐릭터셋을 변경하여 준다.

공유 X Facebook LINE QR 코드

댓글 0개

첫 댓글을 남겨보세요.