어떤 검색엔진에서 어떤 검색어를 통해 사이트에 방문했는지
체크하는 알고리즘입니다. 완전한 프로그램을 올려 드리면 좋겠지만 그냥
알고리즘 정도만 파악하는데 참고 하세요...
간단히 먼저 설명을 드리자면
$_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에서 이동 됨]
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 2030 | 17년 전 | 2797 | ||
| 2029 | 17년 전 | 1603 | ||
| 2028 | 17년 전 | 1352 | ||
| 2027 | 17년 전 | 1610 | ||
| 2026 |
진정한승리
|
17년 전 | 2519 | |
| 2025 | 17년 전 | 1741 | ||
| 2024 | 17년 전 | 2020 | ||
| 2023 | 17년 전 | 1313 | ||
| 2022 |
SE7EN
|
17년 전 | 1047 | |
| 2021 | 17년 전 | 1126 | ||
| 2020 | 17년 전 | 2927 | ||
| 2019 | 17년 전 | 2473 | ||
| 2018 | 17년 전 | 2051 | ||
| 2017 | 17년 전 | 2051 | ||
| 2016 | 17년 전 | 1802 | ||
| 2015 | 17년 전 | 2252 | ||
| 2014 | 17년 전 | 2018 | ||
| 2013 | 17년 전 | 1987 | ||
| 2012 | 17년 전 | 1878 | ||
| 2011 | 17년 전 | 1218 | ||
| 2010 | 17년 전 | 1823 | ||
| 2009 | 17년 전 | 2231 | ||
| 2008 | 17년 전 | 2309 | ||
| 2007 | 17년 전 | 1642 | ||
| 2006 |
Arone
|
17년 전 | 1515 | |
| 2005 |
|
17년 전 | 1364 | |
| 2004 | 17년 전 | 2586 | ||
| 2003 |
suerte
|
17년 전 | 2682 | |
| 2002 |
suerte
|
17년 전 | 2083 | |
| 2001 |
suerte
|
17년 전 | 2424 | |
| 2000 |
|
17년 전 | 2729 | |
| 1999 |
|
17년 전 | 1331 | |
| 1998 |
|
17년 전 | 1197 | |
| 1997 | 17년 전 | 6332 | ||
| 1996 | 17년 전 | 1189 | ||
| 1995 | 17년 전 | 1633 | ||
| 1994 | 17년 전 | 1783 | ||
| 1993 | 17년 전 | 1111 | ||
| 1992 | 17년 전 | 1197 | ||
| 1991 | 17년 전 | 1898 | ||
| 1990 |
sdjsu
|
17년 전 | 1526 | |
| 1989 | 17년 전 | 3625 | ||
| 1988 |
smilesol
|
17년 전 | 1214 | |
| 1987 |
|
17년 전 | 1911 | |
| 1986 | 17년 전 | 1192 | ||
| 1985 | 17년 전 | 1394 | ||
| 1984 | 17년 전 | 2369 | ||
| 1983 | 17년 전 | 2028 | ||
| 1982 | 17년 전 | 1043 | ||
| 1981 | 17년 전 | 1047 | ||
| 1980 | 17년 전 | 1107 | ||
| 1979 |
오렌지76
|
17년 전 | 6053 | |
| 1978 |
오렌지76
|
17년 전 | 5852 | |
| 1977 | 17년 전 | 2041 | ||
| 1976 |
없어씨바라
|
17년 전 | 1031 | |
| 1975 | 17년 전 | 1121 | ||
| 1974 | 17년 전 | 2087 | ||
| 1973 | 17년 전 | 1520 | ||
| 1972 | 17년 전 | 1160 | ||
| 1971 |
smilesol
|
17년 전 | 1198 | |
| 1970 | 17년 전 | 1150 | ||
| 1969 |
smilesol
|
17년 전 | 1070 | |
| 1968 |
소행성블루
|
17년 전 | 3973 | |
| 1967 |
소행성블루
|
17년 전 | 2179 | |
| 1966 | 17년 전 | 1654 | ||
| 1965 |
소행성블루
|
17년 전 | 2781 | |
| 1964 |
고양Ol아빠
|
17년 전 | 1484 | |
| 1963 | 17년 전 | 1172 | ||
| 1962 | 17년 전 | 1189 | ||
| 1961 |
choijinhee
|
17년 전 | 1251 | |
| 1960 | 17년 전 | 1135 | ||
| 1959 | 17년 전 | 1256 | ||
| 1958 |
하이웹솔루션
|
17년 전 | 2408 | |
| 1957 | 17년 전 | 4194 | ||
| 1956 | 17년 전 | 1195 | ||
| 1955 | 17년 전 | 3954 | ||
| 1954 | 17년 전 | 4110 | ||
| 1953 | 17년 전 | 1238 | ||
| 1952 | 17년 전 | 2185 | ||
| 1951 | 17년 전 | 1624 | ||
| 1950 | 17년 전 | 3218 | ||
| 1949 | 17년 전 | 1366 | ||
| 1948 | 17년 전 | 3612 | ||
| 1947 | 17년 전 | 3405 | ||
| 1946 | 17년 전 | 2576 | ||
| 1945 | 17년 전 | 2940 | ||
| 1944 | 17년 전 | 2632 | ||
| 1943 | 17년 전 | 1949 | ||
| 1942 | 17년 전 | 3314 | ||
| 1941 | 17년 전 | 2629 | ||
| 1940 | 17년 전 | 3526 | ||
| 1939 |
|
17년 전 | 1166 | |
| 1938 | 17년 전 | 2251 | ||
| 1937 | 17년 전 | 1327 | ||
| 1936 |
smilesol
|
17년 전 | 1200 | |
| 1935 |
AHEEZII
|
17년 전 | 1064 | |
| 1934 |
smilesol
|
17년 전 | 1044 | |
| 1933 | 17년 전 | 1419 | ||
| 1932 | 17년 전 | 2861 | ||
| 1931 | 17년 전 | 3254 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기