今日のモバイル インターネット時代では、さまざまなユーザー端末デバイスの使用に適応するように 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 サイトの他の関連記事を参照してください。