问题:
像 thismachine.info 这样的网站提供了详细信息有关用户操作系统的信息。用户对这是如何完成的感到好奇,这是可以理解的。许多人不确定如何使用 PHP 获取此类信息。
研究用户代理
用户代理字符串通常包含有关浏览器的大量信息。不过,尚不清楚这些信息是否也用于确定操作系统。如果没有,哪些潜在来源可以提供此信息?
识别操作系统
下面的 PHP 代码提供了有关 thismachine.info 等网站如何确定操作系统的见解正在被使用。它利用正则表达式来匹配用户代理中的操作系统模型(例如,Windows NT 5.1)。
function getOS() { global $user_agent; $os_platform = "Unknown OS Platform"; $os_array = array( '/windows nt 10/i' => 'Windows 10', '/windows nt 6.3/i' => 'Windows 8.1', '/windows nt 6.2/i' => 'Windows 8', '/windows nt 6.1/i' => 'Windows 7', '/windows nt 6.0/i' => 'Windows Vista', '/windows nt 5.2/i' => 'Windows Server 2003/XP x64', '/windows nt 5.1/i' => 'Windows XP', '/windows xp/i' => 'Windows XP', '/windows nt 5.0/i' => 'Windows 2000', '/windows me/i' => 'Windows ME', '/win98/i' => 'Windows 98', '/win95/i' => 'Windows 95', '/win16/i' => 'Windows 3.11', '/macintosh|mac os x/i' => 'Mac OS X', '/mac_powerpc/i' => 'Mac OS 9', '/linux/i' => 'Linux', '/ubuntu/i' => 'Ubuntu', '/iphone/i' => 'iPhone', '/ipod/i' => 'iPod', '/ipad/i' => 'iPad', '/android/i' => 'Android', '/blackberry/i' => 'BlackBerry', '/webos/i' => 'Mobile' ); foreach ($os_array as $regex => $value) if (preg_match($regex, $user_agent)) $os_platform = $value; return $os_platform; }
确定浏览器
类似地,下面的代码利用正则表达式来识别用户的
function getBrowser() { global $user_agent; $browser = "Unknown Browser"; $browser_array = array( '/msie/i' => 'Internet Explorer', '/firefox/i' => 'Firefox', '/safari/i' => 'Safari', '/chrome/i' => 'Chrome', '/edge/i' => 'Edge', '/opera/i' => 'Opera', '/netscape/i' => 'Netscape', '/maxthon/i' => 'Maxthon', '/konqueror/i' => 'Konqueror', '/mobile/i' => 'Handheld Browser' ); foreach ($browser_array as $regex => $value) if (preg_match($regex, $user_agent)) $browser = $value; return $browser; }
总结
所提供的 PHP 代码为有关如何使用 PHP 确定用户操作系统的初始查询提供了解决方案。通过分析用户代理字符串,它能够近似操作系统。值得注意的是,这不是一门精确的科学,提供的结果可能并不总是准确的。
以上是如何使用 PHP 确定用户的操作系统?的详细内容。更多信息请关注PHP中文网其他相关文章!