현재 위치: > 최신 기사 목록> Get_client_version을 사용하여 클라이언트 브라우저 버전을 감지하는 방법

Get_client_version을 사용하여 클라이언트 브라우저 버전을 감지하는 방법

gitbox 2025-05-06

PHP에서 클라이언트 브라우저 버전 감지가 일반적인 요구 사항입니다. 특히 다른 브라우저 버전에 다른 기능이나 스타일이 필요한 웹 응용 프로그램의 경우 버전 제어가 매우 중요합니다. 클라이언트의 사용자 에이전트 문자열을 얻음으로써이를 달성 할 수 있습니다. 이 기사는 Custom Get_client_version 함수를 사용하여 클라이언트 브라우저 버전을 감지하고 버전 정보를 기반으로 적절한 제어를 수행합니다.

1. 클라이언트 브라우저의 사용자 에이전트를 얻으십시오

클라이언트가 요청할 때마다 브라우저는 브라우저 유형, 버전, 운영 체제 및 기타 정보가 포함 된 user-agent 라는 HTTP 헤더를 보냅니다. PHP는 $ _server [ 'http_user_agent']를 제공 하여이 정보를 얻습니다.

먼저 브라우저 유형과 버전을 추출하는 함수를 정의합니다.

 function get_client_version() {
    // 얻다 User-Agent 끈
    $userAgent = $_SERVER['HTTP_USER_AGENT'];

    // 브라우저 버전
    $browserVersion = '';
    // 다른 브라우저를 감지합니다
    if (preg_match('/MSIE (.*?);/', $userAgent, $matches)) {
        $browserVersion = "Internet Explorer: " . $matches[1];
    } elseif (preg_match('/Trident\/.*rv:(.*?)\)/', $userAgent, $matches)) {
        $browserVersion = "Internet Explorer: " . $matches[1];
    } elseif (preg_match('/Chrome\/(.*?) /', $userAgent, $matches)) {
        $browserVersion = "Chrome: " . $matches[1];
    } elseif (preg_match('/Firefox\/(.*?) /', $userAgent, $matches)) {
        $browserVersion = "Firefox: " . $matches[1];
    } elseif (preg_match('/Safari\/(.*?) /', $userAgent, $matches)) {
        $browserVersion = "Safari: " . $matches[1];
    } elseif (preg_match('/Edge\/(.*?) /', $userAgent, $matches)) {
        $browserVersion = "Edge: " . $matches[1];
    } else {
        $browserVersion = "Unknown Browser";
    }

    return $browserVersion;
}

위의 코드에서는 일반 표현식을 사용하여 사용자 에이전트 문자열에서 브라우저 유형 및 버전 정보를 추출합니다. 예를 들어 Chrome의 버전 번호는 일반적으로 Chrome/ 뒤에있는 반면 Internet Explorer는 MSIE 또는 Trident를 사용합니다.

2. 버전 제어를 수행하십시오

브라우저 버전 정보를 추출하면 버전에 따라 다르게 제어 할 수 있습니다. 일부 이전 버전의 브라우저와 호환성을 수행하거나 새로운 버전의 브라우저에 대한 고급 기능을 활성화하려면 버전 정보를 사용하여 브랜치 컨트롤을 사용할 수 있다고 가정 해 봅시다.

예를 들어, 크롬 버전을 확인하고 버전에 따라 다른 기능을 제공 할 수 있습니다.

 function version_control() {
    $browserVersion = get_client_version();
    
    // 얻다브라우저名称和버전号
    preg_match('/([a-zA-Z]+): (\d+\.\d+)/', $browserVersion, $matches);
    
    $browserName = $matches[1] ?? 'Unknown';
    $version = $matches[2] ?? '0';

    // 오른쪽 Chrome 버전 제어를 수행하십시오
    if ($browserName == 'Chrome') {
        if (floatval($version) < 90) {
            echo "당신 것 Chrome 브라우저 버전过低,请升级以얻다更好的体验。";
        } else {
            echo "당신 것 Chrome 브라우저 버전支持最新功能!";
        }
    } elseif ($browserName == 'Firefox') {
        // 오른쪽 Firefox 유사한 버전 제어를 수행하십시오
        if (floatval($version) < 80) {
            echo "당신 것 Firefox 브라우저 버전过低,请升级以얻다更好的体验。";
        } else {
            echo "당신 것 Firefox 브라우저 버전支持最新功能!";
        }
    } else {
        echo "사용중인 것을 감지했습니다 $browserName 브라우저,버전: $version。";
    }
}

version_control 함수에서 먼저 get_client_version을 호출하여 브라우저 버전 정보를 얻습니다. 다음으로 브라우저의 이름과 버전을 기반으로 다른 논리적 처리를 수행합니다. 예를 들어, Chrome 버전이 90보다 낮은 경우 사용자는 브라우저를 업그레이드하도록 상기시킵니다.

3. 샘플 코드를 완료하십시오

이전 코드를 결합하여 PHP 페이지에서 사용할 수있는 완전한 예제가 있습니다.

 <?php
function get_client_version() {
    $userAgent = $_SERVER['HTTP_USER_AGENT'];
    $browserVersion = '';
    
    if (preg_match('/MSIE (.*?);/', $userAgent, $matches)) {
        $browserVersion = "Internet Explorer: " . $matches[1];
    } elseif (preg_match('/Trident\/.*rv:(.*?)\)/', $userAgent, $matches)) {
        $browserVersion = "Internet Explorer: " . $matches[1];
    } elseif (preg_match('/Chrome\/(.*?) /', $userAgent, $matches)) {
        $browserVersion = "Chrome: " . $matches[1];
    } elseif (preg_match('/Firefox\/(.*?) /', $userAgent, $matches)) {
        $browserVersion = "Firefox: " . $matches[1];
    } elseif (preg_match('/Safari\/(.*?) /', $userAgent, $matches)) {
        $browserVersion = "Safari: " . $matches[1];
    } elseif (preg_match('/Edge\/(.*?) /', $userAgent, $matches)) {
        $browserVersion = "Edge: " . $matches[1];
    } else {
        $browserVersion = "Unknown Browser";
    }

    return $browserVersion;
}

function version_control() {
    $browserVersion = get_client_version();
    preg_match('/([a-zA-Z]+): (\d+\.\d+)/', $browserVersion, $matches);
    
    $browserName = $matches[1] ?? 'Unknown';
    $version = $matches[2] ?? '0';

    if ($browserName == 'Chrome') {
        if (floatval($version) < 90) {
            echo "당신 것 Chrome 브라우저 버전过低,请升级以얻다更好的体验。";
        } else {
            echo "당신 것 Chrome 브라우저 버전支持最新功能!";
        }
    } elseif ($browserName == 'Firefox') {
        if (floatval($version) < 80) {
            echo "당신 것 Firefox 브라우저 버전过低,请升级以얻다更好的体验。";
        } else {
            echo "당신 것 Firefox 브라우저 버전支持最新功能!";
        }
    } else {
        echo "사용중인 것을 감지했습니다 $browserName 브라우저,버전: $version。";
    }
}

// 调用버전控制
version_control();
?>

위의 코드는 다른 브라우저 버전을 기반으로 다양한 사용자 경험 또는 알림을 제공하는 데 도움이 될 수 있습니다. 더 많은 브라우저 지원을 추가하거나 특정 버전에서 특정 프론트 엔드 기능을 활성화하는 등의 요구에 따라 더 확장 할 수 있습니다.