2009-08-28 2 views
1

awstats에서 나는 내 웹 사이트를 찾는 데 사용되는 모든 핵심 단어와 구문을 가진 테이블을 얻습니다. 나는 각 검색 엔진 URL이 다른 체재에있는 그러나 이것을 나 자신 붙잡고 싶으면. google이 referer 일 때 검색어 (예 : google.com?q=my+keywords)로 검색어 문자열의 변수 q를 사용할 수 있지만 다른 검색 엔진은 searchengine.com?search=my+keywords 형식을 가질 수 있습니다검색 엔진의 키워드를 PHP로 캡처

검색 키워드를 식별하는 일반적인 방법이 있습니까? 아니면 각 검색 엔진에 대한 정규식/필터를 만들어야합니까?

+0

'php'태그가 포함 된 것으로 편집되었으므로 질문 제목에 특별히 포함되어 있습니다. –

답변

4

하나의 가능성은 추천 URL ($_SERVER['HTTP_REFERER'])을 잡고 그 안에있는 키워드를 분석하는 것입니다. 예를 들어

("스택 오버 플로우"에 대한 검색)이 구글의 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). 
관련 문제