通过 UA 来识别浏览器和操作系统技术
通过 UA 来判断浏览器及版本信息和操作系统类型及版本信息,其实意义不大,也是不太准的。一般这种只适用于浏览器请求识别,如果是 APP 客户端一般也不会设置这样的字段,至少会换种方式或名字。如果要更加准确的判断这些信息,应该在客户端完成识别。
即使意义不大,还得尝试去做。
写这种代码,比较费时间,因为不仅仅是技术,而是需要大量的搜集工作。找了一些开源的软件包,大的吓人,有些竟然依赖网络请求,这样就很慢且不稳定。发现一个网上的接口,一看就是专业的。useragentstring.com,不过这个接口太慢了。
preg_match('/(firefox|chrome|msie|safari|360|uc|maxthon|qq)[\s\/]+([\d\.]+)/i', $user_agent, $matches); if (isset($matches[1])) { $browser = $matches[1]; } if (isset($matches[2])) { $browser_version = $matches[2]; } $data['browser'] = $browser; $data['browserVer'] = $browser_version; $operate_system = ''; if (strpos($user_agent, 'Windows NT 6.1')) { $operate_system = 'Windows7'; } if (strpos($user_agent, 'Windows NT 5.1')) { $operate_system = 'Windows XP'; } if (strpos($user_agent, 'Windows NT 6.4')) { $operate_system = 'Windows 10'; } if (strpos($user_agent, 'Windows NT 6.3')) { $operate_system = 'Windows 8.1'; } if (strpos($user_agent, 'Windows NT 6.2')) { $operate_system = 'Windows 8'; } if (strpos($user_agent, 'Windows NT 6.0')) { $operate_system = 'Windows vista'; } if (strpos($user_agent, 'Mac OS X')) { $operate_system = 'Mac OS X'; } if (strpos($user_agent, 'iPhone')) { $operate_system = 'iPhone'; } if (strpos($user_agent, 'iPad')) { $operate_system = 'iPad'; } if (strpos($user_agent, 'Android')) { $operate_system = 'Android'; } if (strpos($user_agent, 'Linux')) { $operate_system = 'Linux'; }
暂无