Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP禁用所有IE版本的网页_Php_Html_Internet Explorer - Fatal编程技术网

使用PHP禁用所有IE版本的网页

使用PHP禁用所有IE版本的网页,php,html,internet-explorer,Php,Html,Internet Explorer,我的代码只是从IE版本1到9 如果我将[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; } } 首先,[1-11]并不意味着“从1到11的任何数字”

我的代码只是从IE版本1到9

如果我将[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;
    }
}

首先,
[1-11]
并不意味着“从1到11的任何数字”,因为这不是<代码>[0-9]+将是简单性和技术正确性之间的一个很好的折衷


其次,IE11的用户代理字符串与所有版本的用户代理字符串大不相同正则表达式中的字符块[1-9]正好匹配该位置的一个数字。因为“msie 11”在该位置有两个数字,所以您需要匹配“一个或多个”以覆盖所有案例

将正则表达式更改为此,它应该可以工作:

/(?i)msie [0-9]+/
那会匹配的

  • msie 1
  • msie 2
  • msie 10
  • msie 11
  • msie 999
IE11的报告有所不同,因此在这种情况下,您需要查找字符串“Trident”:

Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
正则表达式:

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

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

使用PHP(特定)


使用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>

函数getInternetExplorerVersion()
{
var-rv=-1;
如果(navigator.appName==“Microsoft Internet Explorer”)
{
var ua=navigator.userAgent;
var re=newregexp(“MSIE([0-9]{1,}[\.0-9]{0,})”;
如果(重新执行(ua)!=null)
rv=parseFloat(RegExp.$1);
}
返回rv;
}
函数checkVersion()
{
var msg=“您没有使用Internet Explorer。”;
var ver=getInternetExplorerVersion();
如果(版本>-1)
{
如果(版本>=8.0)
msg=“您正在使用Internet Explorer的最新副本。”
其他的
msg=“您应该升级您的Internet Explorer副本。”;
}
警报(msg);
}
if(preg_match('/(?i)(msie[0-9]+)|(Trident/[0-9]+)/',$_服务器['HTTP_用户代理])。。。。这不起作用。。。。preg_match():未知修饰符“[”
<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>