어떤 검색엔진에서 어떤 검색어를 통해 사이트에 방문했는지
체크하는 알고리즘입니다. 완전한 프로그램을 올려 드리면 좋겠지만 그냥
알고리즘 정도만 파악하는데 참고 하세요...
간단히 먼저 설명을 드리자면
$_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에서 이동 됨]
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 430 | 19년 전 | 4086 | ||
| 429 | 19년 전 | 3281 | ||
| 428 | 19년 전 | 4117 | ||
| 427 | 19년 전 | 3457 | ||
| 426 | 19년 전 | 3091 | ||
| 425 | 19년 전 | 3384 | ||
| 424 | 19년 전 | 2430 | ||
| 423 | 19년 전 | 2834 | ||
| 422 | 19년 전 | 2331 | ||
| 421 | 19년 전 | 3699 | ||
| 420 | 19년 전 | 4723 | ||
| 419 | 19년 전 | 3767 | ||
| 418 |
|
19년 전 | 1722 | |
| 417 | 19년 전 | 2728 | ||
| 416 | 19년 전 | 2375 | ||
| 415 | 19년 전 | 2599 | ||
| 414 | 19년 전 | 4393 | ||
| 413 |
|
19년 전 | 2566 | |
| 412 | 19년 전 | 3024 | ||
| 411 |
|
19년 전 | 2975 | |
| 410 |
|
19년 전 | 3658 | |
| 409 |
|
19년 전 | 3615 | |
| 408 |
|
19년 전 | 1837 | |
| 407 | 19년 전 | 2202 | ||
| 406 | 19년 전 | 2762 | ||
| 405 | 19년 전 | 2430 | ||
| 404 | 19년 전 | 4290 | ||
| 403 | 19년 전 | 3287 | ||
| 402 |
NeoGenesis
|
19년 전 | 4072 | |
| 401 | 19년 전 | 2587 | ||
| 400 |
|
19년 전 | 2470 | |
| 399 | 19년 전 | 2939 | ||
| 398 | 19년 전 | 2468 | ||
| 397 | 19년 전 | 2773 | ||
| 396 | 19년 전 | 2459 | ||
| 395 | 19년 전 | 3165 | ||
| 394 | 19년 전 | 1687 | ||
| 393 | 19년 전 | 2977 | ||
| 392 | 19년 전 | 2238 | ||
| 391 | 19년 전 | 2170 | ||
| 390 | 19년 전 | 2261 | ||
| 389 | 19년 전 | 2622 | ||
| 388 | 19년 전 | 2113 | ||
| 387 | 19년 전 | 4461 | ||
| 386 |
|
19년 전 | 2668 | |
| 385 |
|
19년 전 | 2451 | |
| 384 | 19년 전 | 2964 | ||
| 383 | 19년 전 | 3034 | ||
| 382 | 19년 전 | 3087 | ||
| 381 |
|
19년 전 | 2621 | |
| 380 |
|
19년 전 | 3000 | |
| 379 | 19년 전 | 2534 | ||
| 378 | 19년 전 | 2192 | ||
| 377 | 19년 전 | 2767 | ||
| 376 | 19년 전 | 2461 | ||
| 375 |
|
19년 전 | 2546 | |
| 374 | 19년 전 | 3792 | ||
| 373 | 19년 전 | 3253 | ||
| 372 | 19년 전 | 4972 | ||
| 371 |
세은아빠2
|
19년 전 | 2397 | |
| 370 | 19년 전 | 4488 | ||
| 369 | 19년 전 | 3091 | ||
| 368 | 19년 전 | 2874 | ||
| 367 | 19년 전 | 3714 | ||
| 366 | 19년 전 | 2625 | ||
| 365 | 19년 전 | 3712 | ||
| 364 | 19년 전 | 3987 | ||
| 363 | 19년 전 | 3415 | ||
| 362 | 19년 전 | 3467 | ||
| 361 | 19년 전 | 4086 | ||
| 360 |
hwatta
|
19년 전 | 2342 | |
| 359 | 19년 전 | 5079 | ||
| 358 | 19년 전 | 3632 | ||
| 357 | 19년 전 | 2575 | ||
| 356 |
sdesign1s
|
19년 전 | 2256 | |
| 355 | 20년 전 | 2720 | ||
| 354 | 20년 전 | 3014 | ||
| 353 | 20년 전 | 2780 | ||
| 352 |
|
20년 전 | 5761 | |
| 351 |
|
20년 전 | 2685 | |
| 350 |
|
20년 전 | 4266 | |
| 349 |
hwatta
|
20년 전 | 2157 | |
| 348 | 20년 전 | 7296 | ||
| 347 | 20년 전 | 2400 | ||
| 346 | 20년 전 | 3477 | ||
| 345 | 20년 전 | 4284 | ||
| 344 | 20년 전 | 2607 | ||
| 343 | 20년 전 | 3898 | ||
| 342 | 20년 전 | 3048 | ||
| 341 | 20년 전 | 4073 | ||
| 340 |
|
20년 전 | 5103 | |
| 339 |
|
20년 전 | 4212 | |
| 338 | 20년 전 | 5836 | ||
| 337 | 20년 전 | 2018 | ||
| 336 |
|
20년 전 | 3294 | |
| 335 |
|
20년 전 | 3521 | |
| 334 |
|
20년 전 | 2903 | |
| 333 |
hwatta
|
20년 전 | 2411 | |
| 332 | 20년 전 | 4639 | ||
| 331 | 20년 전 | 2256 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기