어떤 검색엔진에서 어떤 검색어를 통해 사이트에 방문했는지
체크하는 알고리즘입니다. 완전한 프로그램을 올려 드리면 좋겠지만 그냥
알고리즘 정도만 파악하는데 참고 하세요...
간단히 먼저 설명을 드리자면
$_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에서 이동 됨]
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 2130 | 17년 전 | 1175 | ||
| 2129 |
ⓧ힘내세요
|
17년 전 | 2232 | |
| 2128 | 17년 전 | 2872 | ||
| 2127 | 17년 전 | 4056 | ||
| 2126 | 17년 전 | 3142 | ||
| 2125 | 17년 전 | 1404 | ||
| 2124 | 17년 전 | 1707 | ||
| 2123 | 17년 전 | 2236 | ||
| 2122 | 17년 전 | 1542 | ||
| 2121 | 17년 전 | 1719 | ||
| 2120 | 17년 전 | 2714 | ||
| 2119 | 17년 전 | 2141 | ||
| 2118 | 17년 전 | 1795 | ||
| 2117 |
아름다운세상
|
17년 전 | 4197 | |
| 2116 | 17년 전 | 3048 | ||
| 2115 | 17년 전 | 1435 | ||
| 2114 |
아름다운세상
|
17년 전 | 3569 | |
| 2113 | 17년 전 | 2794 | ||
| 2112 | 17년 전 | 2073 | ||
| 2111 | 17년 전 | 1289 | ||
| 2110 | 17년 전 | 2327 | ||
| 2109 | 17년 전 | 2064 | ||
| 2108 | 17년 전 | 1982 | ||
| 2107 |
휴전합시다
|
17년 전 | 1919 | |
| 2106 | 17년 전 | 1168 | ||
| 2105 |
|
17년 전 | 1871 | |
| 2104 | 17년 전 | 2925 | ||
| 2103 | 17년 전 | 1426 | ||
| 2102 | 17년 전 | 1668 | ||
| 2101 | 17년 전 | 1353 | ||
| 2100 | 17년 전 | 1598 | ||
| 2099 | 17년 전 | 1574 | ||
| 2098 | 17년 전 | 1444 | ||
| 2097 | 17년 전 | 2556 | ||
| 2096 | 17년 전 | 2321 | ||
| 2095 | 17년 전 | 2109 | ||
| 2094 | 17년 전 | 1419 | ||
| 2093 | 17년 전 | 2428 | ||
| 2092 | 17년 전 | 4255 | ||
| 2091 | 17년 전 | 2741 | ||
| 2090 | 17년 전 | 1658 | ||
| 2089 | 17년 전 | 1850 | ||
| 2088 | 17년 전 | 3227 | ||
| 2087 | 17년 전 | 2226 | ||
| 2086 | 17년 전 | 3821 | ||
| 2085 | 17년 전 | 1671 | ||
| 2084 | 17년 전 | 2267 | ||
| 2083 | 17년 전 | 2095 | ||
| 2082 | 17년 전 | 1610 | ||
| 2081 | 17년 전 | 2125 | ||
| 2080 |
letsgolee
|
17년 전 | 1921 | |
| 2079 | 17년 전 | 1957 | ||
| 2078 | 17년 전 | 3069 | ||
| 2077 | 17년 전 | 2143 | ||
| 2076 | 17년 전 | 1436 | ||
| 2075 | 17년 전 | 1458 | ||
| 2074 | 17년 전 | 2125 | ||
| 2073 | 17년 전 | 3206 | ||
| 2072 | 17년 전 | 2136 | ||
| 2071 |
휴전합시다
|
17년 전 | 1532 | |
| 2070 | 17년 전 | 4240 | ||
| 2069 | 17년 전 | 2034 | ||
| 2068 | 17년 전 | 3458 | ||
| 2067 | 17년 전 | 6030 | ||
| 2066 | 17년 전 | 1483 | ||
| 2065 |
letsgolee
|
17년 전 | 1652 | |
| 2064 | 17년 전 | 1235 | ||
| 2063 | 17년 전 | 1347 | ||
| 2062 |
vicky
|
17년 전 | 2873 | |
| 2061 | 17년 전 | 1908 | ||
| 2060 |
카프카07
|
17년 전 | 2594 | |
| 2059 | 17년 전 | 1304 | ||
| 2058 | 17년 전 | 3184 | ||
| 2057 | 17년 전 | 2161 | ||
| 2056 | 17년 전 | 2608 | ||
| 2055 | 17년 전 | 1405 | ||
| 2054 | 17년 전 | 1751 | ||
| 2053 | 17년 전 | 1145 | ||
| 2052 |
|
17년 전 | 1202 | |
| 2051 | 17년 전 | 1785 | ||
| 2050 | 17년 전 | 1228 | ||
| 2049 | 17년 전 | 4310 | ||
| 2048 | 17년 전 | 1505 | ||
| 2047 | 17년 전 | 2002 | ||
| 2046 |
카프카07
|
17년 전 | 7088 | |
| 2045 | 17년 전 | 1382 | ||
| 2044 | 17년 전 | 1896 | ||
| 2043 | 17년 전 | 3132 | ||
| 2042 | 17년 전 | 1222 | ||
| 2041 |
카프카07
|
17년 전 | 1983 | |
| 2040 | 17년 전 | 1153 | ||
| 2039 |
smilesol
|
17년 전 | 1848 | |
| 2038 | 17년 전 | 2152 | ||
| 2037 |
|
17년 전 | 2966 | |
| 2036 | 17년 전 | 1247 | ||
| 2035 |
|
17년 전 | 1334 | |
| 2034 |
ㅣ곰탱이ㅣ
|
17년 전 | 1562 | |
| 2033 |
|
17년 전 | 1232 | |
| 2032 | 17년 전 | 4353 | ||
| 2031 | 17년 전 | 3897 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기