PHP에서 모바일로 접속했는지 체크하는 간단한 소스 두가지로 차이점이 하나 있습니다. $_SERVER['HTTP_USER_AGENT'] 에 속해 있는 문자열을 검색할때 1번은 stripos 함수를 사용하고, 2번은 preg_match 함수를 사용한다는 것입니다. 두 함수의 퍼포먼스 때문에 두가지 소스를 올려봤습니다.워낙 짧은 소스라 함수의 성능이 미치는 영향은 미미해서 어느 함수를 쓰던 별로 중요하지는 않겠지만, 아래 링크 걸어둔 stackoverflow 의 글은 한번 쯤 읽어 두셔도 나쁠건 없을 것 같습니다.
preg_match VS strpos ( 옆에 있는 링크를 클릭하시면 stackoverflow 의 preg_match() vs strpos() for match finding? 이란 글을 읽어 보실 수 있습니다. )
1번 <? $mobile_agent = array("Ipone","Ipod","Android","Blackberry","SymbianOS|SCH-M\d+","Opera Mini", "Windows ce", "Nokia", "sony" ); $check_mobile = false; for($i=0; $i<sizeof($mobile_agent); $i++){ if(stripos( $_SERVER['HTTP_USER_AGENT'], $mobile_agent[$i] )){ $check_mobile = true; break; } }
if($check_mobile) echo"모바일 접속"; else echo"PC로 접속"; ?> |
| 2번<? $mobile_agent = array("ipone","ipod","android","blackberry","opera Mini", "windows ce", "nokia", "sony" ); $check_mobile = false; for($i=0; $i<sizeof($mobile_agent); $i++){ if(preg_match("/$mobile_agent[$i]/", strtolower($_SERVER['HTTP_USER_AGENT']))){ $check_mobile = true; break; } } if($check_mobile) echo"모바일 접속"; else echo"PC로 접속"; ?> |
|
|
|
|