如何使用JavaScript或PHP检测用户是否未使用任何浏览器Chrome,Firefox或Internet Explorer?
我在JS中找到的最好的方法是在Quirksmode上.我为PHP制作了一个适用于常见浏览器的程序:
$browser = array( 'version' => '0.0.0', 'majorver' => 0, 'minorver' => 0, 'build' => 0, 'name' => 'unknown', 'useragent' => '' ); $browsers = array( 'firefox', 'msie', 'opera', 'chrome', 'safari', 'mozilla', 'seamonkey', 'konqueror', 'netscape', 'gecko', 'navigator', 'mosaic', 'lynx', 'amaya', 'omniweb', 'avant', 'camino', 'flock', 'aol' ); if (isset($_SERVER['HTTP_USER_AGENT'])) { $browser['useragent'] = $_SERVER['HTTP_USER_AGENT']; $user_agent = strtolower($browser['useragent']); foreach($browsers as $_browser) { if (preg_match("/($_browser)[\/ ]?([0-9.]*)/", $user_agent, $match)) { $browser['name'] = $match[1]; $browser['version'] = $match[2]; @list($browser['majorver'], $browser['minorver'], $browser['build']) = explode('.', $browser['version']); break; } } }
这是JavaScript代码,您可以通过它轻松检测浏览器.
var userAgent = navigator.userAgent.toLowerCase(); // Figure out what browser is being used. var Browser = { Version: (userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1], Chrome: /chrome/.test(userAgent), Safari: /webkit/.test(userAgent), Opera: /opera/.test(userAgent), IE: /msie/.test(userAgent) && !/opera/.test(userAgent), Mozilla: /mozilla/.test(userAgent) && !/(compatible|webkit)/.test(userAgent), Check: function() { alert(userAgent); } }; if (Browser.Chrome || Browser.Mozilla) { // Do your stuff for Firefox and Chrome. } else if (Browser.IE) { // Do something related to Internet Explorer. } else { // The browser is Safari, Opera or some other. }
实际上PHP中有一个函数get_browser.
来自get_browser()的 PHP代码完全适合我;)
' . join('|', $known) . ')[/ ]+(?[0-9.|a-zA-Z.]*)#'; if (!preg_match_all($pattern, $u_agent, $matches)) { // we have no matching number just continue } // See how many we have. $i = count($matches['browser']); if ($i != 1) { //we will have two since we are not using 'other' argument yet //see if version is before or after the name if (strripos($u_agent,"Version") < strripos($u_agent,$ub)){ $version= $matches['version'][0]; } else { $version= $matches['version'][1]; } } else { $version= $matches['version'][0]; } // Check if we have a number. if ($version==null || $version=="") {$version="?";} return array( 'userAgent' => $u_agent, 'name' => $bname, 'version' => $version, 'platform' => $platform, 'pattern' => $pattern ); } // Now try it. $ua=getBrowser(); $yourbrowser= "Your browser: " . $ua['name'] . " " . $ua['version'] . " on " . $ua['platform'] . " reports:
" . $ua['userAgent']; print_r($yourbrowser); ?>