어떤 검색엔진에서 어떤 검색어를 통해 사이트에 방문했는지
체크하는 알고리즘입니다. 완전한 프로그램을 올려 드리면 좋겠지만 그냥
알고리즘 정도만 파악하는데 참고 하세요...
간단히 먼저 설명을 드리자면
$_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);
?>
꼭 필요해서 여러가지로 검색을 해봐도 잘 없고해서 그냥 만들어봤습니다.
허접이지만 약간의 도움이라도 되셨길 바랍니다.
체크하는 알고리즘입니다. 완전한 프로그램을 올려 드리면 좋겠지만 그냥
알고리즘 정도만 파악하는데 참고 하세요...
간단히 먼저 설명을 드리자면
$_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);
?>
꼭 필요해서 여러가지로 검색을 해봐도 잘 없고해서 그냥 만들어봤습니다.
허접이지만 약간의 도움이라도 되셨길 바랍니다.
[이 게시물은 관리자님에 의해 2011-10-31 17:16:08 PHP & HTML에서 이동 됨]
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 330 |
prosper
|
20년 전 | 2240 | |
| 329 |
prosper
|
20년 전 | 1849 | |
| 328 |
prosper
|
20년 전 | 1660 | |
| 327 | 20년 전 | 3739 | ||
| 326 | 20년 전 | 4816 | ||
| 325 |
hwatta
|
20년 전 | 2435 | |
| 324 |
|
20년 전 | 3118 | |
| 323 | 20년 전 | 5822 | ||
| 322 |
hwatta
|
20년 전 | 2814 | |
| 321 |
hwatta
|
20년 전 | 2294 | |
| 320 |
yesmoa
|
20년 전 | 4547 | |
| 319 | 20년 전 | 2645 | ||
| 318 | 20년 전 | 2222 | ||
| 317 |
kyodon
|
20년 전 | 2750 | |
| 316 | 20년 전 | 2550 | ||
| 315 |
|
20년 전 | 2867 | |
| 314 |
|
20년 전 | 3307 | |
| 313 |
|
20년 전 | 2623 | |
| 312 |
yesmoa
|
20년 전 | 4696 | |
| 311 | 20년 전 | 3224 | ||
| 310 |
홀로남은자
|
20년 전 | 4533 | |
| 309 | 20년 전 | 2988 | ||
| 308 | 20년 전 | 4105 | ||
| 307 | 20년 전 | 4339 | ||
| 306 | 20년 전 | 7008 | ||
| 305 | 20년 전 | 3841 | ||
| 304 | 20년 전 | 2741 | ||
| 303 |
크리스탈처럼
|
20년 전 | 4375 | |
| 302 | 20년 전 | 2187 | ||
| 301 |
|
20년 전 | 4309 | |
| 300 | 20년 전 | 3764 | ||
| 299 | 20년 전 | 2562 | ||
| 298 | 20년 전 | 4791 | ||
| 297 |
|
20년 전 | 2504 | |
| 296 | 20년 전 | 4498 | ||
| 295 | 20년 전 | 3550 | ||
| 294 | 20년 전 | 3569 | ||
| 293 | 20년 전 | 3803 | ||
| 292 | 20년 전 | 3184 | ||
| 291 |
yesmoa
|
20년 전 | 5898 | |
| 290 | 20년 전 | 2919 | ||
| 289 | 20년 전 | 5826 | ||
| 288 |
|
20년 전 | 2350 | |
| 287 |
|
20년 전 | 1754 | |
| 286 |
|
20년 전 | 2124 | |
| 285 |
|
20년 전 | 3513 | |
| 284 |
|
20년 전 | 2015 | |
| 283 |
|
20년 전 | 4381 | |
| 282 | 20년 전 | 3360 | ||
| 281 |
|
20년 전 | 2187 | |
| 280 |
|
20년 전 | 7782 | |
| 279 | 20년 전 | 5522 | ||
| 278 | 20년 전 | 2972 | ||
| 277 |
|
20년 전 | 5551 | |
| 276 | 20년 전 | 2339 | ||
| 275 | 20년 전 | 2573 | ||
| 274 | 20년 전 | 2340 | ||
| 273 | 20년 전 | 2190 | ||
| 272 | 20년 전 | 2111 | ||
| 271 | 20년 전 | 2583 | ||
| 270 | 20년 전 | 2561 | ||
| 269 | 20년 전 | 2447 | ||
| 268 | 20년 전 | 2661 | ||
| 267 | 20년 전 | 2348 | ||
| 266 | 20년 전 | 2550 | ||
| 265 | 20년 전 | 3482 | ||
| 264 |
|
20년 전 | 5336 | |
| 263 |
|
20년 전 | 3696 | |
| 262 | 20년 전 | 3150 | ||
| 261 |
허저비
|
20년 전 | 5906 | |
| 260 |
|
20년 전 | 5699 | |
| 259 | 20년 전 | 4116 | ||
| 258 | 20년 전 | 2365 | ||
| 257 | 20년 전 | 3164 | ||
| 256 | 20년 전 | 1882 | ||
| 255 | 20년 전 | 1547 | ||
| 254 | 20년 전 | 3122 | ||
| 253 | 20년 전 | 3534 | ||
| 252 | 20년 전 | 5082 | ||
| 251 | 20년 전 | 5792 | ||
| 250 | 20년 전 | 3653 | ||
| 249 | 20년 전 | 4990 | ||
| 248 | 20년 전 | 3271 | ||
| 247 | 20년 전 | 3616 | ||
| 246 |
|
20년 전 | 7923 | |
| 245 |
|
20년 전 | 5886 | |
| 244 | 20년 전 | 4467 | ||
| 243 |
|
20년 전 | 4018 | |
| 242 | 20년 전 | 2750 | ||
| 241 | 20년 전 | 2690 | ||
| 240 | 20년 전 | 2323 | ||
| 239 | 20년 전 | 1625 | ||
| 238 |
아우겐나이스
|
20년 전 | 2238 | |
| 237 |
email
|
20년 전 | 3660 | |
| 236 | 20년 전 | 4120 | ||
| 235 | 20년 전 | 10440 | ||
| 234 | 20년 전 | 5039 | ||
| 233 | 20년 전 | 3353 | ||
| 232 | 20년 전 | 3173 | ||
| 231 | 20년 전 | 3808 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기