어떤 검색엔진에서 어떤 검색어를 통해 사이트에 방문했는지
체크하는 알고리즘입니다. 완전한 프로그램을 올려 드리면 좋겠지만 그냥
알고리즘 정도만 파악하는데 참고 하세요...
간단히 먼저 설명을 드리자면
$_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에서 이동 됨]
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 6930 |
SOFTA
|
11년 전 | 5986 | |
| 6929 |
|
11년 전 | 1605 | |
| 6928 | 11년 전 | 1762 | ||
| 6927 | 11년 전 | 1788 | ||
| 6926 | 11년 전 | 1887 | ||
| 6925 | 11년 전 | 2279 | ||
| 6924 | 11년 전 | 3878 | ||
| 6923 | 11년 전 | 2280 | ||
| 6922 |
level999
|
11년 전 | 1045 | |
| 6921 | 11년 전 | 822 | ||
| 6920 | 11년 전 | 963 | ||
| 6919 | 11년 전 | 1075 | ||
| 6918 | 11년 전 | 1317 | ||
| 6917 | 11년 전 | 15430 | ||
| 6916 | 11년 전 | 1430 | ||
| 6915 | 11년 전 | 590 | ||
| 6914 | 11년 전 | 623 | ||
| 6913 | 11년 전 | 882 | ||
| 6912 | 11년 전 | 3134 | ||
| 6911 |
사랑해요79
|
11년 전 | 973 | |
| 6910 | 11년 전 | 751 | ||
| 6909 | 11년 전 | 786 | ||
| 6908 | 11년 전 | 648 | ||
| 6907 | 11년 전 | 837 | ||
| 6906 | 11년 전 | 1592 | ||
| 6905 | 11년 전 | 576 | ||
| 6904 | 11년 전 | 1015 | ||
| 6903 | 11년 전 | 1686 | ||
| 6902 |
2donggalbi
|
11년 전 | 525 | |
| 6901 | 11년 전 | 1402 | ||
| 6900 | 11년 전 | 725 | ||
| 6899 | 11년 전 | 867 | ||
| 6898 |
열라뽕똬이
|
11년 전 | 1320 | |
| 6897 |
this1mg
|
11년 전 | 1619 | |
| 6896 |
sbdossb
|
11년 전 | 587 | |
| 6895 |
봉보로봉봉
|
11년 전 | 1163 | |
| 6894 |
똘똘이스머츠
|
11년 전 | 502 | |
| 6893 |
네이비컬러
|
11년 전 | 3648 | |
| 6892 | 11년 전 | 1082 | ||
| 6891 |
네이비컬러
|
11년 전 | 1328 | |
| 6890 | 11년 전 | 1154 | ||
| 6889 | 11년 전 | 596 | ||
| 6888 | 11년 전 | 731 | ||
| 6887 | 11년 전 | 624 | ||
| 6886 | 11년 전 | 5063 | ||
| 6885 | 11년 전 | 563 | ||
| 6884 |
asfasdfd235
|
11년 전 | 593 | |
| 6883 | 11년 전 | 3058 | ||
| 6882 | 11년 전 | 953 | ||
| 6881 | 11년 전 | 4446 | ||
| 6880 | 11년 전 | 1827 | ||
| 6879 |
퍼블리셔지노군
|
11년 전 | 2639 | |
| 6878 | 11년 전 | 573 | ||
| 6877 | 11년 전 | 590 | ||
| 6876 | 11년 전 | 1454 | ||
| 6875 | 11년 전 | 637 | ||
| 6874 | 11년 전 | 1610 | ||
| 6873 | 11년 전 | 1610 | ||
| 6872 | 11년 전 | 4467 | ||
| 6871 |
Abilityarch
|
11년 전 | 974 | |
| 6870 | 11년 전 | 2136 | ||
| 6869 | 11년 전 | 1416 | ||
| 6868 | 11년 전 | 1463 | ||
| 6867 | 11년 전 | 1532 | ||
| 6866 | 11년 전 | 751 | ||
| 6865 | 11년 전 | 1625 | ||
| 6864 | 11년 전 | 484 | ||
| 6863 | 11년 전 | 3758 | ||
| 6862 | 11년 전 | 1856 | ||
| 6861 | 11년 전 | 1654 | ||
| 6860 | 11년 전 | 1313 | ||
| 6859 |
cityman
|
11년 전 | 6819 | |
| 6858 | 11년 전 | 1277 | ||
| 6857 |
의정부아줌마
|
11년 전 | 877 | |
| 6856 | 11년 전 | 2379 | ||
| 6855 | 11년 전 | 1711 | ||
| 6854 | 11년 전 | 838 | ||
| 6853 | 11년 전 | 1214 | ||
| 6852 | 11년 전 | 2604 | ||
| 6851 | 11년 전 | 1981 | ||
| 6850 | 11년 전 | 1804 | ||
| 6849 | 11년 전 | 2095 | ||
| 6848 | 11년 전 | 2373 | ||
| 6847 | 11년 전 | 3152 | ||
| 6846 | 11년 전 | 2728 | ||
| 6845 | 11년 전 | 2809 | ||
| 6844 | 11년 전 | 3534 | ||
| 6843 | 11년 전 | 3280 | ||
| 6842 |
아트291
|
11년 전 | 699 | |
| 6841 | 11년 전 | 4175 | ||
| 6840 | 11년 전 | 5193 | ||
| 6839 | 11년 전 | 904 | ||
| 6838 |
|
11년 전 | 2102 | |
| 6837 | 11년 전 | 1287 | ||
| 6836 |
netdf
|
11년 전 | 622 | |
| 6835 |
|
11년 전 | 1015 | |
| 6834 | 11년 전 | 684 | ||
| 6833 |
|
11년 전 | 2693 | |
| 6832 |
울산굿모닝
|
11년 전 | 1674 | |
| 6831 |
|
11년 전 | 677 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기