我不知道我做错了什么,但脚本不会检查正确的浏览器。
<?
class rbc_BrowserInfo {
public $browser = "";
public $os = "";
public $lang = "";
public $mobile = 0;
public function getBrowserInfo() {
if (preg_match('/MSIE/i',$_SERVER['HTTP_USER_AGENT'])) $this->browser = 'ie';
if (preg_match('/Internet Explorer/i',$_SERVER['HTTP_USER_AGENT'])) $this->browser = 'ie';
if (preg_match('/Firefox/i',$_SERVER['HTTP_USER_AGENT'])) $this->browser = 'firefox';
if (preg_match('/Mozilla/i',$_SERVER['HTTP_USER_AGENT'])) $this->browser = 'firefox';
if (preg_match('/Opera/i',$_SERVER['HTTP_USER_AGENT'])) $this->browser = 'opera';
if (preg_match('/Safari/i',$_SERVER['HTTP_USER_AGENT'])) $this->browser = 'safari';
if (preg_match('/Chrome/i',$_SERVER['HTTP_USER_AGENT'])) $this->browser = 'chrome';
if (preg_match('/Camino/i',$_SERVER['HTTP_USER_AGENT'])) $this->browser = 'camino';
if (preg_match('/Konqueror/i',$_SERVER['HTTP_USER_AGENT'])) $this->browser = 'konqueror';
if (preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone)/i', strtolower($_SERVER['HTTP_USER_AGENT'])) || (strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml')>0) or ((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))) {
$this->mobile = 1;
}
$os_arr = array ( 'windows' => '(Windows)|(Win)', 'linux'=>'(linux)|(X11)', 'mac'=>'(Mac_PowerPC)|(Macintosh)|(Mac)');
$this->os = 'other';
foreach($os_arr as $os=>$ospattern) {
if (eregi($ospattern, $_SERVER['HTTP_USER_AGENT']))
$this->os = $os;
}
$this->lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
}
}
$browserinfo = new rbc_BrowserInfo();
$browserinfo -> getBrowserInfo();
/* EXAMPLES */
if ($browserinfo->lang!="de") {
header("Location: index.php?language=de"); /* Browser umleiten falls Sprache nicht Englisch ist */
exit;
}
// or
if ($browserinfo->mobile==1) {
header("Location: http://mobile.example.com/"); /* Browser umleiten */
exit;
}
/* // or
if ($browserinfo->browser=="ie" ){
echo 'Du surfst mit Safari';
}
else {
echo 'Du surfst nicht mit Safari';
} */
if ($browserinfo->browser=="ie") {
echo '<div class="error">Dude..Get Firefox</div>';
}
?>
如果我将部分更改为
if ($browserinfo->browser!="ie" ){
比所有浏览器都收到消息..但是如果代码返回
if ($browserinfo->browser=="ie" ){
甚至比 Internet Explorer 都没有收到通知