2014-01-20 108 views
0

我的代碼是剛剛從IE版本1到9的工作......禁用頁面的所有版本的IE瀏覽器與PHP

如果我改變[1-9]〜[1-11]它不工作:/

有人可以幫助我嗎?所有的

function ieCheck() 
{ 
    if(preg_match('/(?i)msie [1-9]/',$_SERVER['HTTP_USER_AGENT'])) 
    {  
     echo "This website is not optimised for IE"; 
     exit; 
    } 
} 

回答

6

首先,[1-11]並不意味着「任何數量從1到11」,因爲這不是how regular expression syntax works。反而會是簡單性和技術上正確性之間的良好折衷。其次,IE11的用戶代理字符串與所有版本< = 10的用戶代理字符串完全不同,您需要一個單獨的正則表達式來解析它;您需要的信息在MSDN上提供。

最後,考慮到從9開始的IE版本是非常符合標準的(10和11更是如此),你應該再看看你在這裏做什麼。我非常懷疑IE 10不會呈現你的頁面是正確的。

3

正則表達式中的字符塊[1-9]與該位置上的數字匹配。因爲「msie 11」有兩個這個位置的數字,你需要匹配「一個或多個」來覆蓋你所有的情況。

您正則表達式改成這樣,它應該工作:

/(?i)msie [0-9]+/ 

,將匹配

  • MSIE 1
  • MSIE 2
  • ...
  • MSIE 10
  • msie 11
  • ...
  • MSIE 999

IE11報告雖然不同,所以你需要尋找在這種情況下,字符串 「三叉戟」:

Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko 

正則表達式:

/(?i)(msie [0-9]+)|(Trident/[0-9]+)/ 
+0

如果(的preg_match('/(ⅰ)(MSIE [0-9] +)|(三叉戟/ [0-9] +)/',$ _ SERVER ['HTTP_USER_AGENT']))....這不起作用.... preg_match():未知修飾符'[' – Susanne92

0

使用PHP

?0
<?php 
if(isset($_SERVER['HTTP_USER_AGENT'])){ 
$agent = $_SERVER['HTTP_USER_AGENT']; 
if(strlen(strstr($agent,"MSIE")) > 10){ 
echo "sorry: not compatible"; 
}} 
?> 

使用PHP(特定)

<?php 
    if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) 
echo 'Internet explorer'; 
elseif(strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== FALSE) 
echo 'Mozilla Firefox'; 
elseif(strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome') !== FALSE) 
echo 'Google Chrome'; 
else 
echo 'Something else'; 
?> 

用java腳本

<script type="text/javascript"> 
function getInternetExplorerVersion() 

{ 
    var rv = -1; 
    if (navigator.appName == 'Microsoft Internet Explorer') 
    { 
    var ua = navigator.userAgent; 
    var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})"); 
    if (re.exec(ua) != null) 
     rv = parseFloat(RegExp.$1); 
    } 
    return rv; 
} 
function checkVersion() 
{ 
    var msg = "You're not using Internet Explorer."; 
    var ver = getInternetExplorerVersion(); 

    if (ver > -1) 
    { 
    if (ver >= 8.0) 
     msg = "You're using a recent copy of Internet Explorer." 
    else 
     msg = "You should upgrade your copy of Internet Explorer."; 
    } 
    alert(msg); 
} 
</script> 
相關問題