반응형
아래 소스코드는 PHP의 $_SERVER['HTTP_USER_AGENT'] 변수를 활용해서 클라이언트(사용자)의 기기, 운영체제 및 브라우저 정보를 확인하며 처리하고 있습니다.
<?php
$userAgent = $_SERVER['HTTP_USER_AGENT'];
// PC와 모바일 기기를 구분하기 위한 정규 표현식 패턴
$patternMobile = '/(iPhone|iPod|iPad|Android|Windows Phone)/i';
if (preg_match($patternMobile, $userAgent)) {
// 모바일 기기인 경우
echo "이 기기는 모바일 기기입니다.<br>";
// 운영체제 확인
if (strpos($userAgent, 'Android') !== false) {
echo "운영체제: Android<br>";
} elseif (strpos($userAgent, 'iPhone') !== false || strpos($userAgent, 'iPad') !== false) {
echo "운영체제: iOS<br>";
} elseif (strpos($userAgent, 'Windows Phone') !== false) {
echo "운영체제: Windows Phone<br>";
} else {
echo "운영체제 정보를 확인할 수 없습니다.<br>";
}
} else {
// PC인 경우
echo "이 기기는 PC입니다.<br>";
// 운영체제 확인
if (strpos($userAgent, 'Windows') !== false) {
echo "운영체제: Windows<br>";
} elseif (strpos($userAgent, 'Macintosh') !== false) {
echo "운영체제: macOS<br>";
} elseif (strpos($userAgent, 'Linux') !== false) {
echo "운영체제: Linux<br>";
} else {
echo "운영체제 정보를 확인할 수 없습니다.<br>";
}
}
// 브라우저 정보 및 버전 확인
if (strpos($userAgent, 'MSIE') !== false || strpos($userAgent, 'Trident') !== false) {
echo "브라우저: Internet Explorer<br>";
// IE 버전 확인
if (preg_match('/MSIE (\d+\.\d+)/i', $userAgent, $matches)) {
$version = $matches[1];
echo "버전: " . $version . "<br>";
}
} elseif (strpos($userAgent, 'Edge') !== false) {
echo "브라우저: Microsoft Edge<br>";
// Edge 버전 확인
if (preg_match('/Edge\/(\d+\.\d+)/i', $userAgent, $matches)) {
$version = $matches[1];
echo "버전: " . $version . "<br>";
}
} elseif (strpos($userAgent, 'Firefox') !== false) {
echo "브라우저: Mozilla Firefox<br>";
// Firefox 버전 확인
if (preg_match('/Firefox\/(\d+\.\d+)/i', $userAgent, $matches)) {
$version = $matches[1];
echo "버전: " . $version . "<br>";
}
} elseif (strpos($userAgent, 'Chrome') !== false) {
echo "브라우저: Google Chrome<br>";
// Chrome 버전 확인
if (preg_match('/Chrome\/(\d+\.\d+)/i', $userAgent, $matches)) {
$version = $matches[1];
echo "버전: " . $version . "<br>";
}
} elseif (strpos($userAgent, 'Safari') !== false) {
echo "브라우저: Apple Safari<br>";
// Safari 버전 확인
if (preg_match('/Version\/(\d+\.\d+)/i', $userAgent, $matches)) {
$version = $matches[1];
echo "버전: " . $version . "<br>";
}
} else {
echo "브라우저 정보를 확인할 수 없습니다.<br>";
}
?>
User Agent 문자열에서 $patternMobile 패턴을 찾아 모바일 기기 여부를 확인하고 특정 문자열로 운영체제를 확인합니다. 브라우저에 대한 정보도 strpos() 함수 및 정규 표현식을 사용합니다.
반응형
'개발이야기 > PHP' 카테고리의 다른 글
[PHP] implode() 함수 사용법, 예제 (배열을 문자열로 변환하기) (0) | 2023.11.02 |
---|---|
[PHP] foreach 반복문 사용법, 예제 (0) | 2023.10.13 |
[PHP] 변수로 배열 만들기 compact() 함수 사용법, 예제 (0) | 2023.07.04 |
[PHP] 문자열 자르고 지정한 길이만큼 보여주기 (문자열 생략하기) (0) | 2023.06.02 |
[PHP] AES 암호화 복호화 사용법, 예제, 데모 (대칭키 암호화) (0) | 2023.06.01 |
댓글