2009-08-28 17 views
1

awstatsでは、私のウェブサイトを見つけるために使用されたすべてのキーワードとフレーズを含むテーブルを取得します。私はこれを捕捉したいと思いますが、各検索エンジンのURLは異なる形式です。グーグルがリファラーである場合、クエリーストリングの変数qを検索語として使用できます(例:google.com?q = my+keywords)しかし、別の検索エンジンの形式はsearchengine.com ?search = my+keywords検索エンジンのキーワードをPHPで取得

検索キーワードを特定する一般的な方法はありますか?あるいは、各検索エンジン用の正規表現/フィルタを作成する必要がありますか?

+0

編集、それが具体的に質問のタイトルに含まれていたことから、「PHPのタグを含めること。 –

答えて

4

1つの可能性は、参照URL($_SERVER['HTTP_REFERER'])を取得し、その中のキーワードを解析することです。例えば

、このGoogleのURL( "スタックオーバーフロー" の検索を)チェックアウト:

http://www.google.com/search?hl=en&q=stack+overflow&aq=0&oq=stack+over&aqi=g10 

q GET変数の値は、+記号で区切られたキーワードを保持しています。

+1

ask.comと同様、Microsoftの「Bing」も同じことをしています。 Yahooは 'p' GET変数を使用します。一方、Wolfram Alphaは "私の入力にどうしたらいいのかわからなかった" ... –

+0

@ricebowl:wolfram alphaは検索エンジンではないので、実際には "計算知識エンジン"です。 –

+0

http://www.wolframalpha.com/input/?i=stackoverflow.com –

0

私はいつもそれを追加する必要がありますが、ここではGoogle、yahoo、bing、ask、およびMSN(Bingと同じ)からキーワードを取り除く必要があるREGEXがあります。これは、間に+を残していますが、開始することが良い場所でなければなりません:

.*(\?p=|\?q=|&q=|\?s=)([a-zA-Z0-9 +]*)(&toggle=|&ie=utf-8|&FORM=|&aq=|&x=|&gwp).