現在の位置: ホーム> 最新記事一覧> get_client_versionを使用してクライアントブラウザバージョンを検出する方法

get_client_versionを使用してクライアントブラウザバージョンを検出する方法

gitbox 2025-05-06

PHPでは、クライアントブラウザバージョンの検出が一般的な要件です。特に、さまざまなブラウザバージョンに異なる機能やスタイルを必要とするWebアプリケーションの場合、バージョン制御は非常に重要です。クライアントのユーザーエージェント文字列を取得することで、これを達成できます。この記事では、Custom get_client_version関数を使用してクライアントブラウザーバージョンを検出し、バージョン情報に基づいて適切なコントロールを実行します。

1.クライアントブラウザのユーザーエージェントを取得します

クライアントがリクエストするたびに、ブラウザはブラウザタイプ、バージョン、オペレーティングシステム、その他の情報を含むユーザーエージェントという名前の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。バージョン制御を実行します

ブラウザバージョン情報を抽出したら、バージョンに応じて異なる方法で制御できます。ブラウザの古いバージョンと互換性を互換性を備えているか、新しいバージョンのブラウザの高度な機能を有効にする必要があるとします。バージョン情報を使用してブランチコントロールを使用できます。

たとえば、Chromeバージョンを確認して、バージョンに応じてさまざまな機能を提供できます。

 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();
?>

上記のコードは、さまざまなブラウザーバージョンに基づいて、さまざまなユーザーエクスペリエンスまたはリマインダーを提供するのに役立ちます。さらに、ブラウザサポートの追加や特定のバージョンで特定のフロントエンド機能を有効にするなど、ニーズに応じてさらに拡張できます。