diff --git a/helpers/helpers.php b/helpers/helpers.php index 0f0b6c4..ba33d91 100644 --- a/helpers/helpers.php +++ b/helpers/helpers.php @@ -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;