YesYo.com MintState Forums
뒤로    YesYo.com MintState BBS > Tech > PHP
검색
멤버이름    오토
비밀번호 
 

방문자의 os와 browser를 체크하는 함수

페이지 정보

작성자 MintState 댓글 0건 조회 12,586회 작성일 08-11-10 13:24

본문

방문자의 os와 browser를 체크하는 함수

프로그램에 사용하기 위해 HTTP_USER_AGENT를 이용한 방문자의 OS와 web browser를 체크하는 함수를 만들어 보았습니다.

HTTP_USER_AGENT에 대한 여러가지 패턴과 정보에 대해 약 1000여개의 HTTP_USER_AGENT 결과를 체크하여 제작 하였습니다.

/////////////////////////////////////체크 함수 호출
check_agent();

/////////////////////////////////////출력
echo "
OS : $os_name $os_version <br>
Browser : $br_name $br_version
"; 
 
목록보기  클립에복사 | 인쇄하기  
 
/*

http_user_agent를 이용한 client의 os와 web brower를 체크

*/

/////////////////////////////////////os정보를 가져오는 함수 
function set_os($os){ 
global $os_version,$os_name,$array; 
$os_version=""; 

    for($i=0;$i<sizeof($array);$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<sizeof($array);$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";} 
}

댓글목록

등록된 댓글이 없습니다.

Total 165건 3 페이지
PHP 목록
번호 제목 글쓴이 조회 날짜
115 MintState 14497 11-10
114 MintState 16157 11-10
113 MintState 17092 11-10
112 MintState 21224 11-10
111 MintState 12459 11-10
110 MintState 30528 11-10
109 MintState 15809 11-10
108 MintState 14657 11-10
107 MintState 14548 11-10
열람중 MintState 12587 11-10
105 MintState 20792 11-10
104 MintState 12967 11-10
103 MintState 12824 11-10
102 MintState 19977 11-10
101 MintState 11431 11-10
100 MintState 12519 11-10
99 MintState 20269 11-10
98 MintState 14291 11-10
97 MintState 12901 11-10
96 MintState 11373 11-10
95 MintState 13288 11-10
94 MintState 11859 11-03
93 MintState 11304 11-03
92 MintState 12512 11-03
91 MintState 15520 11-03
게시물 검색
모바일 버전으로 보기
CopyRight ©2004 - 2024, YesYo.com MintState. ™