問題:
像 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中文網其他相關文章!