웹 브라우저와 OS의 수는 수없이 많다. 웹 브라우저만 해도 모질라 파이어폭스, 구글 크롬, 애플 Safari, MS 인터넷 익스플로러 등이 있고, 최근에는 OS의 다변화도 이루어져 MS 윈도우 말고도 안드로이드, iOS 등 모바일 플랫폼용 OS도 많이 출시되었다.
여기서 웹페이지에 접속할 때 각 플랫폼에 맞는 페이지, 즉 모바일 페이지나 데스크탑용 페이지로 연결하려면 거기에 맞는 정보가 필요한데, 그 정보가 바로 사용자 에이전트이다.
아래는 userAgent의 샘플이다
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
userAgent를 가져와서 간단하게 모바일 디바이스를 구분하는 함수 소스이다.
<?php
/* 모바일 에이전트 구분 */
function isMobile(){
$useragent=isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
$useragent_commentsblock=preg_match('|\(.*?\)|',$useragent,$matches)>0?$matches[0]:'';
function CheckSubstrs($substrs,$text){
foreach($substrs as $substr)
if(false!==strpos($text,$substr)){
return true;
}
return false;
}
$mobile_os_list=array('Google Wireless Transcoder','Windows CE','WindowsCE','Symbian','Android','armv6l','armv5','Mobile','CentOS','mowser','AvantGo','Opera Mobi','J2ME/MIDP','Smartphone','Go.Web','Palm','iPAQ');
$mobile_token_list=array('Profile/MIDP','Configuration/CLDC-','160×160','176×220','240×240','240×320','320×240','UP.Browser','UP.Link','SymbianOS','PalmOS','PocketPC','SonyEricsson','Nokia','BlackBerry','Vodafone','BenQ','Novarra-Vision','Iris','NetFront','HTC_','Xda_','SAMSUNG-SGH','Wapaka','DoCoMo','iPhone','iPod');
$found_mobile=CheckSubstrs($mobile_os_list,$useragent_commentsblock) || CheckSubstrs($mobile_token_list,$useragent);
if ($found_mobile){
return true;
}else{
return false;
}
}
if (isMobile()){
header('location: ./app/index.php');
}
else{
header('location: ./web/index.php');
}
?>
'Web > PHP' 카테고리의 다른 글
두 날짜 사이의 월별, 일별 통계 구하기 (0) | 2021.03.30 |
---|---|
php 2차원 배열 특정 value 값으로 sort하기 (0) | 2021.03.18 |
영카트에서 주문시 받으시는분 삭제하는 방법 (0) | 2020.12.10 |
PHP8 - str_contains .. 문자열에 특정 단어 있는지 확인 (0) | 2020.12.06 |
[PHP] PHP 정규식 사용하여 휴대폰 번호의 중간 4 자리를 별표(*)로 표시 (0) | 2019.09.02 |