[PHP]YahooとGoogleのリファラーからキーワードを抽出する

アクセスログのrefererからキーワードを抽出するメモです。
とりあえずヤフーとグーグルだけ。

// $refererにリファラが入っているとして…
if (strpos($referer, "www.google.co.jp/search") !== false) {
	// Google
	ereg("[?&]q=([^&]+)", $referer, $tmp);
	// もしかしたら文字コード変換もしなきゃかも
} elseif (strpos($referer, "search.yahoo.co.jp")) {
	// Yahoo
	ereg("[?&]p=([^&]+)", $referer, $tmp);
	// 検索クエリーのエンコーディングを取得
	ereg("[?&]ei=([^&]+)", $referer, $encoding);
	if ($encoding[1] != "UTF-8") {
		// 文字コードがUTF-8以外なら、UTF-8に変換(urldecode⇒mb_convert_encoding⇒urlencode)
		$tmpKeyword = mb_convert_encoding(urldecode($tmp[1]), "UTF-8", $encoding[1]);
		$tmp[1] = urlencode($tmpKeyword);
	}
}

というような感じでやってますが、もしかしたらまだ穴があるかもしれません。
また、もっと効率のいい方法もあると思います。もしご教示頂ける方がいらっしゃいましたら、コメント欄やトラックバックで教えていただけるととっても嬉しいです。

【注意事項】

  • Googleの方はエンコードの変換処理を入れなくても(とりあえず僕が持っているログでは)問題が無いので、入れてません。
  • ちなみに他の検索エンジンからの訪問は、全て合わせて5%程度なので、うちでは無視してます。(検索キーワードの抽出において)
スポンサーリンク
336x280_1
336x280_1

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
336x280_1