获取用户设备和平台信息

This commit is contained in:
2024-12-04 08:35:30 +08:00
parent 07a08b9e15
commit b4cec3651b

View File

@@ -56,39 +56,57 @@ if (!function_exists('get_device_type')) {
}
// 确定浏览器类型
if (strpos($userAgent, 'Firefox') !== false) {
$deviceInfo['browser'] = 'Mozilla Firefox';
} elseif (strpos($userAgent, 'Opera Mini') !== false || strpos($userAgent, 'Opera') !== false) {
$deviceInfo['browser'] = 'Opera';
} elseif (strpos($userAgent, 'Chrome') !== false) {
$deviceInfo['browser'] = 'Google Chrome';
} elseif (strpos($userAgent, 'Safari') !== false && strpos($userAgent, 'Version/') !== false) {
$deviceInfo['browser'] = 'Apple Safari';
} elseif (strpos($userAgent, 'MSIE') !== false || strpos($userAgent, 'Trident/7') !== false) {
$deviceInfo['browser'] = 'Internet Explorer';
$br = $_SERVER['HTTP_USER_AGENT'];
switch ($br) {
case strpos($br, 'MSIE') !== false:
$deviceInfo['browser'] = 'MSIE';
break;
case strpos($br, 'Edg') !== false:
$deviceInfo['browser'] = 'Microsoft Edge';
break;
case strpos($br, 'Firefox') !== false:
$deviceInfo['browser'] = 'Firefox';
break;
case strpos($br, 'Chrome') !== false:
$deviceInfo['browser'] = 'Chrome';
break;
case strpos($br, 'Safari') !== false:
$deviceInfo['browser'] = 'Safari';
break;
case strpos($br, 'Opera' ):
$deviceInfo['browser'] = 'Opera';
break;
case strpos($br, 'Api' ):
$deviceInfo['browser'] = 'Api Post';
break;
default:
$deviceInfo['browser'] = 'Other';
}
// 确定操作系统平台
if (strpos($userAgent, 'Windows NT 10.0; Win64; x64') !== false && strpos($userAgent, 'WOW64') === false) {
$deviceInfo['platform'] = 'Windows 11';
} elseif (strpos($userAgent, 'Windows NT 10.0') !== false) {
$deviceInfo['platform'] = 'Windows 10';
} elseif (strpos($userAgent, 'Windows NT 6.3') !== false) {
$deviceInfo['platform'] = 'Windows 8.1';
} elseif (strpos($userAgent, 'Windows NT 6.2') !== false) {
$deviceInfo['platform'] = 'Windows 8';
} elseif (strpos($userAgent, 'Windows NT 6.1') !== false) {
$deviceInfo['platform'] = 'Windows 7';
} elseif (strpos($userAgent, 'Macintosh; Intel Mac OS X') !== false) {
$deviceInfo['platform'] = 'Mac OS X';
} elseif (strpos($userAgent, 'iPad') !== false) {
$deviceInfo['platform'] = 'iOS';
} elseif (strpos($userAgent, 'iPhone') !== false) {
$deviceInfo['platform'] = 'iOS';
} elseif (strpos($userAgent, 'Android') !== false) {
$deviceInfo['platform'] = 'Android';
} else {
$deviceInfo['platform'] = '未知';
$os = $_SERVER['HTTP_USER_AGENT'];
switch(true) {
case strpos($os, 'Windows') !== false:
$deviceInfo['platform'] = 'Windows';
break;
case strpos($os, 'Macintosh') !== false:
$deviceInfo['platform'] = 'Mac';
break;
case strpos($os, 'Linux') !== false:
$deviceInfo['platform'] = 'Linux';
break;
case strpos($os, 'Android') !== false:
$deviceInfo['platform'] = 'Android';
break;
case strpos($os, 'iOS') !== false:
$deviceInfo['platform'] = 'iOS';
break;
case strpos($os, 'Api') !== false:
$deviceInfo['platform'] = 'Api Post';
break;
default:
$deviceInfo['platform'] = 'Unknown';
}
return $deviceInfo;