웹모아
웹모아[손님] 검색   로그인 / 회원가입    



 
토막소스
 


사이트 방문경로와 검색한 단어 알기
  2008-08-10 21:51:15 댓글:(0)   조회:1476



어떤 검색엔진에서 어떤 검색어를 통해 사이트에 방문했는지 
체크하는 알고리즘입니다. 완전한 프로그램을 올려 드리면 좋겠지만 그냥 
알고리즘 정도만 파악하는데 참고 하세요... 


간단히 먼저 설명을 드리자면 

$_SERVER["HTTP_REFERER"] 를 통해 이전의 url 을 받아 옵니다. 

예를들어 네어버에서 부자되는법 으로 검색을 하면 

네이버 : http://search.naver.com/search.naver?where=nexearch&query=부자되는법&frm=t1&sm=top_hty 

이렇게 됩니다. 물론 urldecode() 을 통해 디코딩을 해야 한글이 나옵니다. 

parse_url() 함수는 해당 url 을 host, query 로 구분하여 주는데 좀더 자세히 설명을 
드리자면 주소와 ? 뒤에 있는 쿼리를 배열로 구분 해 줍니다. 
이건 직접 한번 디스플레이 해 보시면 아실겁니다. (소스에는 주석 처리했음) 

검색어 추출은 query 배열을 "&" 로 구분하여 배열로 재저장을 한 후에 
"query=" 와 "q=" 가 들어 있는 배열을 다시 "=" 로 구분해버립니다. 
(말은 어렵게 했는데 소스를 보시면 이해가 가실겁니다) 

검색엔진을 찾는것도 마찬가지로 일치하는 단어를 찾아냅니다. 

그럼 소스를 한번 보시죠. 


<? 

$url_tmp = urldecode( $_SERVER["HTTP_REFERER"]  );  
$url_p = parse_url( $url_tmp ); 

// echo "$url_tmp<br>";          
// echo "$url_p[query]"; 


// 어떤 검색어?? 

 $q2 = explode( "&", $url_p[query] ); 
  
 for ( $tmp_i=0; sizeof($q2)>$tmp_i; $tmp_i++ ) 
 {              
  if ( ereg("query=", $q2[$tmp_i]) OR ereg("q=", $q2[$tmp_i]) ) 
  {     
      $q3 = explode( "=", $q2[$tmp_i] ); 
      $q_end = $q3[1]; 
  } 
 } 


// 어느 검색엔진?? 

 if ( ereg("naver", $url_p[host]) ) { $host2 = "네이버"; } 
 else if ( ereg("yahoo", $url_p[host]) ) { $host2 = "야후"; } 
 else if ( ereg("daum", $url_p[host]) )  { $host2 = "다음"; } 
 else if ( ereg("empas", $url_p[host]) ) { $host2 = "엠파스"; } 
 else { $host2 = "기타"; } 
  
// $date_var[sh_name] = $host2; 
// $date_var[sh_string] = $q_end; 

// self::db_insert("counter.time", $date_var); 

?> 

꼭 필요해서 여러가지로 검색을 해봐도 잘 없고해서 그냥 만들어봤습니다. 
허접이지만 약간의 도움이라도 되셨길 바랍니다.



 댓글 (0)


토막소스
페이지: 1 / 4   


   이미지 사이즈 비율대로 축소1034
   PHP- 파일 다운로드시 속도 제한하기1795
     파일 다운로드 속도 제한1514
   ffmpeg 설치 후 php 업로드 간단 테스트2438
   새청없이 주소검색2088
   EUC-KR<=>UTF-8 상호변환 하기1997
   키를 이용한 암호화/복호화 함수입니다.1625
   간단한 암호화/복호화 함수1708
   PHP로 작동하는 RSS 읽는 함수1531
   [PHP] 자동 썸네일 이미지 만들기2142
   내용 검색시 검색어 내용 포함되어있는 부분 출력하기1500
사이트 방문경로와 검색한 단어 알기1477
   이미지 실제경로를 않보여주고 이미지 출력하기(2) 4994
    Ajax로 구연한 실시간 서버시간 출력2362
   ajax refresh(2초에 한번 자동 페이지로딩5220
   refresh.php1495
   연합뉴스 샘플1637
   구글뉴스1467
   웹페이지의 문자열 가져오기 소스1717
   XML<-->Array 클래스(4) 1774
   str_replace() 한글치환 보강1883
   php로 텍스트라인에서 영문 한글 특수문자 숫자 지2893
   추천 하려면..어떻게 해야하죠?(1) 1543
   들어온 경로 URL 기록 남기기1692
   중복 로그인 방지법4419
   세션 DB 처리 소스1612
   한페이지에서 체크된것은 Y, 아니면 N으로 업데이트(1) 1598
   [제로보드] 쪽지 도착하면 자동으로 뜨게 하기(홈마스타)1572
   PHP특강(28)-쪽지 확인창 띄워주기(홈마스타)1782
   [초보강좌] 세션을 DB로 관리하기 + 쪽지 확인하(홈마스타)792
[1]  [2]  [3]  [4]  

복수단어 검색은 공백(space)로 구분해 주세요. 1





최근 글
[손님]

인기 글
[손님]