웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
[추천 팁] 방문자의 os와 browser체크 함수....
2002.03.18 23:57
프로그램에 사용하기 위해 HTTP_USER_AGENT를 이용한 방문자의 OS와 web browser를 체크하는 함수를 만들어 보았습니다.
HTTP_USER_AGENT에 대한 여러가지 패턴과 정보에 대해 약 1000여개의 HTTP_USER_AGENT 결과를 체크하여 제작 하였습니다.
함수TEST 결과 보기 ->> http://navyism.com/temp
-_-허접한 소스지만.....;;;; 유용하게 쓰시길~
/******************************************************************************
프로그램개요 : http_user_agent를 이용한 client의 os와 web brower를 체크
제 작 자 : navyism
제 작 일 : 2002.3.18
e-mail : navyism@navyism.com
homepage : http://navyism.com
******************************************************************************/
/////////////////////////////////////os정보를 가져오는 함수
function set_os($os){
global $os_version,$os_name,$array;
$os_version="";
for($i=0;$i
$j=$i+1;
if(eregi("$os",$array[$i]) && eregi("^[0-9]{1,2}([.]{1}[0-9]{1,2})*[a-z]{0,1}$",$array[$j])){
$os_version=$array[$j];
}
}
}
/////////////////////////////////////browser정보를 가져오는 함수
function set_br($br){
global $br_version,$br_name,$array;
$br_version="";
for($i=0;$i
$j=$i+1;
if(eregi("$br",$array[$i]) && eregi("^[0-9]{1,2}([.]{1}[0-9]{1,2})*[a-z]{0,1}$",$array[$j])){
$br_version=$array[$j];
}
}
}
/////////////////////////////////////os와 browser를 체크하는 함수
function check_agent(){
global $HTTP_USER_AGENT,$os_name,$os_version,$br_version,$br_name,$array;
$temp=$HTTP_USER_AGENT;
$temp=eregi_replace("([ 0-9.])*%","",$temp);
$temp=trim(eregi_replace("-|_|=|+|;"," ",$temp));
$array=split(" ",$temp);
if(eregi("([a-z])+/",$array[0])){$br_version_temp=split("/",$array[0]);}
$br_version_temp=$br_version_temp[1];
if(eregi("Win|Window",$temp)){
$os_name="Windows";
if(ereg("s 3.1|n3.1",$temp)){
$os_version="3.1";
}
if(ereg("s 95|n95",$temp)){
$os_version="95";
}
if(ereg("s 98|n98",$temp)){
$os_version="98";
}
if(ereg("s ME|nME",$temp)){
$os_version="ME";
}
if(ereg("s NT|nNT",$temp)){
$os_version="NT";
}
if(ereg("s NT|nNT",$temp) && eregi("T 5.0| 2000",$temp)){
$os_version="2000";
}
if(ereg("s NT|nNT",$temp) && eregi("T 5.1| XP",$temp)){
$os_version="XP";
}
}
elseif(eregi("Mac PowerPC|PPC",$temp)){
$os_name="Mac PowerPC";
set_os("Mac powerPC");
}
elseif(eregi("Mac",$temp)){
$os_name="Macintosh";
set_os("Mac");
}
elseif(eregi("Linux",$temp)){
$os_name="Linux";
set_os("Linux");
}
elseif(eregi("IRIX",$temp)){
$os_name="IRIX";
set_os("IRIX");
}
elseif(eregi("sunOS",$temp)){
$os_name="sunOS";
set_os("sunOS");
}
elseif(eregi("phone",$temp)){
$os_name="CellPhone";
set_os("phone");
}
else{$os_name="Unknown";$os_version="";}
if(eregi("MSN",$temp)){
$br_name="MSN";
set_br("MSN");
}
elseif(eregi("MSIE",$temp)){
$br_name="MSIE";
set_br("MSIE");
}
elseif(eregi("([){1}[a-z]{1,3}(]){1}",$temp) && eregi("]",$temp)){
$br_name="Netscape";
$br_version=$br_version_temp;
}
elseif(eregi("opera",$temp)){
$br_name="Opera";
set_br("opera");
if(!$br_version){$br_version=$br_version_temp;}
}
elseif(eregi("gec|gecko",$temp)){
$br_name="Gecko";
set_br("Gecko");
if(!$br_version){$br_version=$br_version_temp;}
}
elseif(eregi("MSMB",$temp)){
$br_name="MSMB";
}
else{$br_name="Unknown";}
}
/////////////////////////////////////체크 함수 호출
check_agent();
/////////////////////////////////////출력
echo "
OS : $os_name $os_version
Browser : $br_name $br_version
";
?>
HTTP_USER_AGENT에 대한 여러가지 패턴과 정보에 대해 약 1000여개의 HTTP_USER_AGENT 결과를 체크하여 제작 하였습니다.
함수TEST 결과 보기 ->> http://navyism.com/temp
-_-허접한 소스지만.....;;;; 유용하게 쓰시길~
/******************************************************************************
프로그램개요 : http_user_agent를 이용한 client의 os와 web brower를 체크
제 작 자 : navyism
제 작 일 : 2002.3.18
e-mail : navyism@navyism.com
homepage : http://navyism.com
******************************************************************************/
/////////////////////////////////////os정보를 가져오는 함수
function set_os($os){
global $os_version,$os_name,$array;
$os_version="";
for($i=0;$i
if(eregi("$os",$array[$i]) && eregi("^[0-9]{1,2}([.]{1}[0-9]{1,2})*[a-z]{0,1}$",$array[$j])){
$os_version=$array[$j];
}
}
}
/////////////////////////////////////browser정보를 가져오는 함수
function set_br($br){
global $br_version,$br_name,$array;
$br_version="";
for($i=0;$i
if(eregi("$br",$array[$i]) && eregi("^[0-9]{1,2}([.]{1}[0-9]{1,2})*[a-z]{0,1}$",$array[$j])){
$br_version=$array[$j];
}
}
}
/////////////////////////////////////os와 browser를 체크하는 함수
function check_agent(){
global $HTTP_USER_AGENT,$os_name,$os_version,$br_version,$br_name,$array;
$temp=$HTTP_USER_AGENT;
$temp=eregi_replace("([ 0-9.])*%","",$temp);
$temp=trim(eregi_replace("-|_|=|+|;"," ",$temp));
$array=split(" ",$temp);
if(eregi("([a-z])+/",$array[0])){$br_version_temp=split("/",$array[0]);}
$br_version_temp=$br_version_temp[1];
if(eregi("Win|Window",$temp)){
$os_name="Windows";
if(ereg("s 3.1|n3.1",$temp)){
$os_version="3.1";
}
if(ereg("s 95|n95",$temp)){
$os_version="95";
}
if(ereg("s 98|n98",$temp)){
$os_version="98";
}
if(ereg("s ME|nME",$temp)){
$os_version="ME";
}
if(ereg("s NT|nNT",$temp)){
$os_version="NT";
}
if(ereg("s NT|nNT",$temp) && eregi("T 5.0| 2000",$temp)){
$os_version="2000";
}
if(ereg("s NT|nNT",$temp) && eregi("T 5.1| XP",$temp)){
$os_version="XP";
}
}
elseif(eregi("Mac PowerPC|PPC",$temp)){
$os_name="Mac PowerPC";
set_os("Mac powerPC");
}
elseif(eregi("Mac",$temp)){
$os_name="Macintosh";
set_os("Mac");
}
elseif(eregi("Linux",$temp)){
$os_name="Linux";
set_os("Linux");
}
elseif(eregi("IRIX",$temp)){
$os_name="IRIX";
set_os("IRIX");
}
elseif(eregi("sunOS",$temp)){
$os_name="sunOS";
set_os("sunOS");
}
elseif(eregi("phone",$temp)){
$os_name="CellPhone";
set_os("phone");
}
else{$os_name="Unknown";$os_version="";}
if(eregi("MSN",$temp)){
$br_name="MSN";
set_br("MSN");
}
elseif(eregi("MSIE",$temp)){
$br_name="MSIE";
set_br("MSIE");
}
elseif(eregi("([){1}[a-z]{1,3}(]){1}",$temp) && eregi("]",$temp)){
$br_name="Netscape";
$br_version=$br_version_temp;
}
elseif(eregi("opera",$temp)){
$br_name="Opera";
set_br("opera");
if(!$br_version){$br_version=$br_version_temp;}
}
elseif(eregi("gec|gecko",$temp)){
$br_name="Gecko";
set_br("Gecko");
if(!$br_version){$br_version=$br_version_temp;}
}
elseif(eregi("MSMB",$temp)){
$br_name="MSMB";
}
else{$br_name="Unknown";}
}
/////////////////////////////////////체크 함수 호출
check_agent();
/////////////////////////////////////출력
echo "
OS : $os_name $os_version
Browser : $br_name $br_version
";
?>
댓글 3
제목 | 글쓴이 | 날짜 |
---|---|---|
스킨 시스템 구축.(1탄 읽어오기) [11] | 씨파개 | 2003.05.13 |
Wake On Lan 기능 사용하기... [3] | sMokaHallo | 2003.05.17 |
썸네일 자동생성하고 이미지 사이즈 자동 줄이기... [6] | sMokaHallo | 2003.05.21 |
홈페이지의 내용을 DB에 담기 [15] | 세죠위그이 | 2003.05.30 |
체크박스등으로 배열로 변수를 넘길때.. [1] | myself2 | 2003.06.06 |
php 로 기존 문서 포함시키기 [10] | 이성헌 | 2003.06.08 |
PHP 익히기 1 [24] | 구리구리 | 2003.06.09 |
PHP 익히기 2 [9] | 구리구리 | 2003.06.10 |
PHP 익히기 3 [11] | 구리구리 | 2003.06.17 |
이미 인클루드된 파일은 다시 인클루드하지 않기 [14] | 김병희 | 2003.06.20 |
htmlspecialchars 사용하시는 분들 [5] | holies | 2003.07.11 |
Thumbnail 생성하기 - 수정^^; [9] | holies | 2003.07.11 |
'와 "의 속도 차이?! [6] | holies | 2003.07.12 |
초간단 php 랜덤 이미지 및 랜덤 배경이미지 소스 [6] | 거금도 | 2003.07.24 |
다른 사이트에 있는 파일 읽어오기 [50] | 김규백 | 2003.07.25 |
스킨 시스템 사용하기 [2] | 김규백 | 2003.07.25 |
제로보드 + MSN 메신저 (작성글에 리플이나 코멘트가 달리면 MSN으로 알려준다?)
[18]
![]() | HungryMania | 2003.08.01 |
체널을 응용해서 tmain.php?tdb=test&db=src 식으로 쓰기 [12] | 9000㎒ | 2003.08.01 |
$i++ !== $i += 1 [14] | 플로렐라 | 2003.08.04 |
개판 오분전 정규식(4) | 미친개 | 2003.08.07 |