The Problem:
Websites like thismachine.info provide detailed information about users' operating systems. Users are understandably curious about how this is done. Many are unsure how to obtain such information using PHP.
Investigating the User-Agent
The user-agent string often contains a wealth of information about the browser. However, it is unclear whether this information is also used to determine the operating system. If not, what potential sources could provide this information?
Identifying the Operating System
The PHP code below offers insights into how websites like thismachine.info determine the operating system being used. It utilizes a regular expression to match the operating system model within the user-agent (e.g., 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; }
Determining the Browser
Similarly, the code below utilizes regular expressions to identify the user's browser.
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; }
In Conclusion
The PHP code provided offers a solution to the initial query regarding how to determine a user's operating system using PHP. By analyzing the user-agent string, it is able to approximate the OS. It is worth noting that this is not an exact science and the results provided may not always be precise.
The above is the detailed content of How Can I Determine a User's Operating System Using PHP?. For more information, please follow other related articles on the PHP Chinese website!