웹사이트나 애플리케이션을 만들 때, 디바이스 구분은 매우 중요합니다. PC, 태블릿, 모바일 등 다양한 디바이스에서 웹사이트가 어떻게 다르게 표시되는지에 따라 사용자 경험이 크게 달라지기 때문인데요. 그래서 우리는 PHP를 활용하여 디바이스를 정확히 구분하는 방법을 알아보려고 합니다.
"모바일인지, 태블릿인지, PC인지 구분하려면 어떻게 해야 할까?"라는 궁금증을 해결하기 위해, PHP에서 디바이스를 구분하는 기준과 이를 활용하는 구체적인 예제를 다루어 보겠습니다.
PHP에서 디바이스 구분하기
디바이스 구분은 주로 User-Agent라는 HTTP 헤더 값을 통해 이루어집니다. 이 값은 클라이언트가 웹서버에 요청을 보낼 때, 자신이 사용하는 브라우저, 운영체제, 그리고 디바이스 종류를 포함한 문자열입니다.
1) User-Agent 예시
- PC: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36
- 모바일: Mozilla/5.0 (iPhone; CPU iPhone OS 14_5 like Mac OS X) AppleWebKit/537.36 (KHTML, like Gecko) Mobile/15E148 Safari/537.36
- 태블릿: Mozilla/5.0 (Linux; Android 10; SM-T875) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.120 Safari/537.36
이렇게, User-Agent 문자열 안에 디바이스 종류를 나타내는 정보가 포함되어 있기 때문에, 이를 기반으로 디바이스를 구분할 수 있습니다.
2) PHP 코드 예제
<?php
$userAgent = $_SERVER['HTTP_USER_AGENT'];
function getDeviceType($userAgent) {
// 모바일 디바이스 확인
if (preg_match('/mobile/i', $userAgent)) {
return 'mobile';
}
// 태블릿 디바이스 확인
elseif (preg_match('/tablet|ipad/i', $userAgent)) {
return 'tablet';
}
// PC 디바이스 확인
else {
return 'pc';
}
}
$deviceType = getDeviceType($userAgent);
echo "디바이스 종류: " . $deviceType;
?>
3) 결과 화면 예시
- 모바일: 디바이스 종류: mobile
- 태블릿: 디바이스 종류: tablet
- PC: 디바이스 종류: pc
User-Agent 외에도 다른 기준을 활용하기
User-Agent만으로 디바이스를 완벽히 구분하는 것은 아닙니다. 화면 크기, 해상도 등도 중요한 기준이 될 수 있습니다. 예를 들어, 모바일 디바이스는 일반적으로 작은 화면과 낮은 해상도를 가지기 때문에 이를 기준으로 구분할 수도 있습니다.
function isMobileDevice() {
return isset($_SERVER['HTTP_ACCEPT']) && strpos($_SERVER['HTTP_ACCEPT'], 'application/vnd.wap.xhtml+xml') !== false;
}
if (isMobileDevice()) {
echo "모바일 디바이스";
} else {
echo "PC 디바이스";
}
이 방법은 모바일 디바이스만의 특성을 기반으로 디바이스를 구분하는 추가적인 방법입니다.
'PHP' 카테고리의 다른 글
PHP 아이피 확인 방법! 사용자, 프록시, 서버 (+코드예제) (5) | 2025.04.15 |
---|---|
PHP str_pad() 함수 완벽 활용법! 0자리수 채우기에서 고급 활용까지 (14) | 2025.04.14 |
PHP vs JSP, 웹 개발에 미치는 충격적인 차이점!🔥 당신이 놓치고 있는 핵심은? (23) | 2025.04.11 |
PHP 코드 오류를 한 번에 잡는 4가지 핵심 디버깅 기술 (21) | 2025.04.09 |
PHP 상담신청, 게시글 작성 시 SMTP 이메일 받기 (+코드예제) (10) | 2025.04.04 |