[php] 방문자의 os와 browser를 체크하는 함수
로빈아빠
본문
방문자의 os와 browser를 체크하는 함수
프로그램에 사용하기 위해 HTTP_USER_AGENT를 이용한 방문자의 OS와 web browser를 체크하는 함수를 만들어 보았습니다.
HTTP_USER_AGENT에 대한 여러가지 패턴과 정보에 대해 약 1000여개의 HTTP_USER_AGENT 결과를 체크하여 제작 하였습니다.
프로그램에 사용하기 위해 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";} }
관련링크
댓글목록
등록된 댓글이 없습니다.