[php] PHP : Internet Explorer 6, 7, 8 또는 9 인 경우

다음 줄에 따라 다른 버전의 Internet Explorer에 대해 PHP에서 조건부를 수행하고 싶습니다.

if($browser == ie6){ //do this} elseif($browser == ie7) { //dothis } elseif...

비슷한 코드에서 많은 변형을 보았지만 간단한 if 및 else 작업을 수행하고 다른 작업을 수행하기 위해 코딩하기 매우 쉬운 매우 간단한 것을 찾고 있습니다.

감사

편집 : 사용자에게 다른 메시지를 표시하려면 CSS 조건 등이 좋지 않습니다.



답변

이것이 IE8 이하를 확인하는 변형을 사용하여 끝낸 것입니다.

if (preg_match('/MSIE\s(?P<v>\d+)/i', @$_SERVER['HTTP_USER_AGENT'], $B) && $B['v'] <= 8) {
    // Browsers IE 8 and below
} else {
    // All other browsers
}


답변

IE10 및 IE11 모두에서 계속 작동하는 버전 :

preg_match('/MSIE (.*?);/', $_SERVER['HTTP_USER_AGENT'], $matches);
if(count($matches)<2){
  preg_match('/Trident\/\d{1,2}.\d{1,2}; rv:([0-9]*)/', $_SERVER['HTTP_USER_AGENT'], $matches);
}

if (count($matches)>1){
  //Then we're using IE
  $version = $matches[1];

  switch(true){
    case ($version<=8):
      //IE 8 or under!
      break;

    case ($version==9 || $version==10):
      //IE9 & IE10!
      break;

    case ($version==11):
      //Version 11!
      break;

    default:
      //You get the idea
  }
}


답변

HTTP_USER_AGENT 서버 변수를 확인할 수 있습니다. IE가 전송 한 사용자 에이전트에는 MSIE 가 포함되어 있습니다.

if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) { ... }

특정 버전의 경우 조건을 확장 할 수 있습니다.

if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6.') !== false) { ... }

이 관련 질문 도 참조하십시오 .


답변

다음은 PHP에서 브라우저를 감지하는 데 유용한 리소스입니다. http://php.net/manual/en/function.get-browser.php

다음은 가장 간단 해 보이는 예 중 하나입니다.

<?php
function get_user_browser()
{
    $u_agent = $_SERVER['HTTP_USER_AGENT'];
    $ub = '';
    if(preg_match('/MSIE/i',$u_agent))
    {
        $ub = "ie";
    }
    elseif(preg_match('/Firefox/i',$u_agent))
    {
        $ub = "firefox";
    }
    elseif(preg_match('/Safari/i',$u_agent))
    {
        $ub = "safari";
    }
    elseif(preg_match('/Chrome/i',$u_agent))
    {
        $ub = "chrome";
    }
    elseif(preg_match('/Flock/i',$u_agent))
    {
        $ub = "flock";
    }
    elseif(preg_match('/Opera/i',$u_agent))
    {
        $ub = "opera";
    }

    return $ub;
}
?>

그런 다음 나중에 코드에서 다음과 같이 말할 수 있습니다.

$browser = get_user_browser();
if($browser == "ie"){
    //do stuff
}


답변

나는 이것을한다

$u = $_SERVER['HTTP_USER_AGENT'];

$isIE7  = (bool)preg_match('/msie 7./i', $u );
$isIE8  = (bool)preg_match('/msie 8./i', $u );
$isIE9  = (bool)preg_match('/msie 9./i', $u );
$isIE10 = (bool)preg_match('/msie 10./i', $u );

if ($isIE9) {
    //do ie9 stuff
}


답변

PHP는 get_browser () 라는 함수를 가지고 있습니다.이 함수 는 사용자의 브라우저에 대한 세부 정보와 할 수있는 작업과 함께 객체 (또는 원하는 경우 배열 ) 를 반환합니다.

간단히 살펴보면 다음 코드가 제공됩니다.

$browser = get_browser( null, true );
if( $browser['name'] == "Firefox" )
    if( $browser['majorversion'] == 4 )
        echo "You're using Firefox version 4!";

이것은 확실한 방법은 아니지만 ( 스푸핑 될 수 있고 때로는 php에 의해 잘못 분석 될 수있는 HTTP_USER_AGENT 에서 읽음 ), 내가 아는 한 가장 쉽게 찾을 수있는 방법입니다.


답변

if (isset($_SERVER['HTTP_USER_AGENT']) && preg_match("/(?i)msie|trident|edge/",$_SERVER['HTTP_USER_AGENT'])) {
// eh, IE found
}