2011-02-06 2 views
0

Internet Explorer 6을 사용하는 사용자를 index.php에서 ie.php로 리디렉션하고 싶습니다.PHP를 통해 어떤 브라우저를 사용하고 있는지 확인할 수 있습니까? 그리고 특정 브라우저가 발견되면 리디렉션으로 진행합니다.

다음을 사용하고 있습니다. PHP 코드 :

<?php 


     $url = htmlspecialchars($_GET['url']); 


      header('Location: http://'.$url.'') ; 


     ?> 

될 경우 사용자의 브라우저를 식별하기 위해하고 8 IE6 리디렉션을 진행하는 코드입니다 if 문? 당신이 $ _SERVER을 사용할 수 있습니다

답변

1

사전에

감사합니다 [ 'HTTP_USER_AGENT'], 사용자 에이전트는 브라우저 버전, OS, 언어 등과 같은 몇 가지 세부 사항을 포함하는 문자열 ...

+0

리디렉션을 계속 진행하려면 if 문에서 정확히 $ _SERVER [ 'HTTP_USER_AGENT']를 사용하고 있습니까? – Azu

+0

문자열을 분석해야하며, strstr()을 사용하여 문자열을 분석 할 수 있습니다. 사용자가 IE를 사용하는 경우 어떤 문자열이 나타나는지 확인하고 사용자 에이전트에서 해당 문자열을 검색하십시오. 문자열이 발견되면 분명히 IE를 사용하고 그를 리디렉션 할 수 있습니다. GL 형. – Ratinho

+0

http://php.net/manual/en/tutorial.useful.php - 예 # 2와 # 3의 에코 대신 리디렉션을 할 수 있습니다. –

0

다음 코드를 시도해보십시오. 원하는 위치에 if을 넣으십시오.

<?php 
function getBrowser() 
{ 
    $u_agent = $_SERVER['HTTP_USER_AGENT']; 
    $bname = 'Unknown'; 
    $platform = 'Unknown'; 
    $version= ""; 

    //First get the platform? 
    if (preg_match('/linux/i', $u_agent)) { 
     $platform = 'linux'; 
    } 
    elseif (preg_match('/macintosh|mac os x/i', $u_agent)) { 
     $platform = 'mac'; 
    } 
    elseif (preg_match('/windows|win32/i', $u_agent)) { 
     $platform = 'windows'; 
    } 

    // Next get the name of the useragent yes seperately and for good reason 
    if(preg_match('/MSIE/i',$u_agent) && !preg_match('/Opera/i',$u_agent)) 
    { 
     $bname = 'Internet Explorer'; 
     $ub = "MSIE"; 
    } 
    elseif(preg_match('/Firefox/i',$u_agent)) 
    { 
     $bname = 'Mozilla Firefox'; 
     $ub = "Firefox"; 
    } 
    elseif(preg_match('/Chrome/i',$u_agent)) 
    { 
     $bname = 'Google Chrome'; 
     $ub = "Chrome"; 
    } 
    elseif(preg_match('/Safari/i',$u_agent)) 
    { 
     $bname = 'Apple Safari'; 
     $ub = "Safari"; 
    } 
    elseif(preg_match('/Opera/i',$u_agent)) 
    { 
     $bname = 'Opera'; 
     $ub = "Opera"; 
    } 
    elseif(preg_match('/Netscape/i',$u_agent)) 
    { 
     $bname = 'Netscape'; 
     $ub = "Netscape"; 
    } 

    // finally get the correct version number 
    $known = array('Version', $ub, 'other'); 
    $pattern = '#(?<browser>' . join('|', $known) . 
    ')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#'; 

    // see how many we have 
    $i = count($matches['browser']); 
    if ($i != 1) { 
     //we will have two since we are not using 'other' argument yet 
     //see if version is before or after the name 
     if (strripos($u_agent,"Version") < strripos($u_agent,$ub)){ 
      $version= $matches['version'][0]; 
     } 
     else { 
      $version= $matches['version'][1]; 
     } 
    } 
    else { 
     $version= $matches['version'][0]; 
    } 

    // check if we have a number 
    if ($version==null || $version=="") {$version="?";} 

    return array(
     'userAgent' => $u_agent, 
     'name'  => $bname, 
     'version' => $version, 
     'platform' => $platform, 
     'pattern' => $pattern 
    ); 
} 

// now try it 
$ua=getBrowser(); 
$yourbrowser= "Your browser: " . $ua['name'] . " " . $ua['version'] . " on " .$ua['platform'] . " reports: <br >" . $ua['userAgent']; 
echo $yourbrowser; 
?> 
관련 문제