ホームページ  >  記事  >  バックエンド開発  >  PHP は携帯電話で開かれるか PC で開かれるかをどのように判断しますか?

PHP は携帯電話で開かれるか PC で開かれるかをどのように判断しますか?

PHPz
PHPzオリジナル
2023-04-21 09:10:193248ブラウズ

今日のモバイル インターネット時代では、さまざまなユーザー端末デバイスの使用に適応するように Web サイトのデザインを最適化することが必要な作業になっています。したがって、Web サイトにアクセスするときに、ユーザーが携帯電話を使用しているか PC を使用しているかを PHP でどのように判断するかが、開発者が直面する必要がある問題の 1 つとなっています。この記事では、開発者が Web サイトを開いているクライアントが携帯電話か PC かを判断するのに役立つ、一般的な PHP コードをいくつか紹介します。

1. HTTP_USER_AGENT によるアクセス端末の特定

HTTP_USER_AGENT は HTTP プロトコルのヘッダー情報であり、リクエスト ヘッダーには多くのデバイス識別情報が含まれており、アクセス端末を特定するために使用できます。デバイスタイプ。ユーザーリクエストヘッダーのHTTP_USER_AGENTを解析することで、ユーザーが使用しているブラウザ、オペレーティングシステム、モバイルデバイスなどの情報を取得できます。これには、モバイルデバイスやPCデバイスの識別情報も含まれます。

具体的な実装は次のとおりです。

function is_mobile(){
    if (isset($_SERVER['HTTP_USER_AGENT'])) {
        $user_agent = $_SERVER['HTTP_USER_AGENT'];
        $mobile_agents = Array("Android", "iPhone", "iPod", "iPad", "Windows Phone", "BlackBerry", "SymbianOS");
        foreach ($mobile_agents as $mobile_agent) {
            if (strpos($user_agent, $mobile_agent) !== false) {
                return true;
            }
        }
    }
    return false;
}

$mobile_agents 配列を反復処理すると、HTTP_USER_AGENT にモバイル デバイス識別子が含まれているかどうかに基づいて、アクセス端末がモバイル デバイスであるかどうかを判断できます。 true が返された場合は、ユーザーがモバイル デバイスを使用したことを意味し、そうでない場合は、ユーザーが PC デバイスを使用したことを意味します。

2. $_SERVER のオリジナルと思われる方法でアクセス端末を特定する

HTTP_USER_AGENT ヘッダー情報以外にも、HTTP_USER_AGENT ヘッダー情報以外に、 $_SERVER アクセス端末タイプの元のメソッドと思われる。 HTTP_ACCEPT 値は、ユーザーのブラウザが受け入れることができるページ タイプを表します。通常、ブラウザはデフォルトで text/html タイプのデータを受け入れますが、モバイル デバイスは text/html タイプまたは wap タイプのデータ形式を要求します。

具体的な実装コードは次のとおりです。

function is_mobile(){
    if (isset($_SERVER['HTTP_ACCEPT'])) {
        $accept = $_SERVER['HTTP_ACCEPT'];
        if (strpos($accept, 'vnd.wap.xhtml+xml') !== false || 
            strpos($accept, 'text/vnd.wap.wml') !== false) {
            return true;
        }
    }
    return false;
}

true が返された場合は、ユーザーがモバイル デバイスを使用してアクセスしたことを意味し、それ以外の場合は、ユーザーが PC デバイスを使用してアクセスしたことを意味します。

3. モバイル デバイス経由で特定の URL パスにアクセスする

デフォルトでは、モバイル デバイスが Web サイトにアクセスすると、自動的にモバイル バージョンの Web ページにジャンプしますが、デスクトップ デバイスが Web サイトにアクセスすると、モバイル バージョンの Web ページに自動的にジャンプします。それを実行すると、デスクトップ版のページに移動します。開発者は、URL パスの違いに基づいて、さまざまなデバイスからのリクエストを処理できます。

たとえば、URL に「/m/」文字列を追加すると、アクセスされているページがモバイル Web サイトであることを意味します。コンテンツを調整した後でも、レンダリングできます。アクセスURLに「/m/」の文字列が含まれていない場合は、PCページへのアクセスとなります。

具体的な実装コードは次のとおりです。

function is_mobile(){
    if(isset($_SERVER['HTTP_REFERER'])){
        $referer = strtolower($_SERVER['HTTP_REFERER']);
        $mobile_url = strtolower($_SERVER['HTTP_HOST'].'/m/');
        if(strpos($referer, $mobile_url) !== false){
            return true;
        }
    }
    return false;
}

$_SERVER['HTTP_REFERER'] の値を確認することで、ユーザーが現在のページにアクセスしたページのリンクを取得できます。ユーザーがモバイル デバイスを使用しているか PC デバイスを使用しているかを判断します。

まとめ

上記の 3 つの方法はすべて、ユーザーの端末デバイスの種類を決定するために使用できますが、どの方法を選択するかは主にアプリケーションの実際の状況によって決まります。実際のアプリケーションでは、これらの方法をさまざまなシナリオに適用して、ユーザーによりフレンドリーなエクスペリエンスを提供できます。開発者がモバイル デバイスと PC の両方に適した Web アプリケーションを開発したい場合は、上記の方法を使用して簡単に実装できます。

以上がPHP は携帯電話で開かれるか PC で開かれるかをどのように判断しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。