0
我不知道我在做什麼錯,但腳本不會檢查正確的瀏覽器。PHP瀏覽器檢查腳本
<?
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不會得到通知
Firefox,Safari,Chrome,Opera正在運行,但只有IE不顯示消息。 – karabey
沒有人可以回答我? – karabey