ブラウザの HTML5 および CSS3 機能のサポートを検出するスクリプトを PHP で作成することは可能ですか? そうでない場合、どの言語でも可能ですか?
5 に答える
$_SERVER
PHP は、HTTP 経由で提供され、スーパーグローバルに格納されているもの以外は、クライアントについてあまり知りません。PHPはクライアントではなくサーバーで実行されるため、これはほぼ設計によるものです。
機能検出は、JavaScript とも呼ばれるクライアント コードに適切に属します。 Modernizrは、機能を簡単に検出できる最高のライブラリの 1 つです。
これを使用して、クライアント上の機能を検出し、サーバー上の変数を更新する AJAX 要求を発行できます。最初のページの読み込みでは機能しませんが、その後のすべてのリクエストは、セッションに保存すると、サーバーでの問い合わせに使用できる設定に依存できます。
これを回避するための解決策は、最初に値がサーバーに保存されているかどうかを確認することです。そうでない場合は、単にこの機能検出/AJAX 呼び出しを実行し、JavaScript を介して最初に要求されたページにリダイレクトするページを出力しない場合です。この解決策にはいくつかの落とし穴があります (あなたのサイトへのすべての訪問者は最初、信頼を構築するための最良の方法ではないクイック リダイレクトを含む空白の画面が表示されます。サーバーコードがクライアントの実装に依存するようになったため、利用可能なすべてのクライアントでアプリケーションをテストすることはないと思います)。これは回避策としてのみ提供します。
PHP でブラウザーを検出してから、ブラウザーごとに異なるコードを使用する必要があります。
PHP ブラウザー検出手法:
- モバイル検出用のGoogle プラグイン
- $_SERVER['HTTP_USER_AGENT'] の使用
- get_browser() の使用
- モビフォージ
http://www.html5test.comを見て、これがどのように機能するかを見ましたか。
PHP には、ブラウザー機能の連想配列を返す get_browser という関数があります。ただし、機能を正常に動作させるには、ブラウザに関する情報を含む browscap.ini というファイルをダウンロードする必要があります。このファイルを取得してインストールする方法については、関数のドキュメント ページを参照してください。