フロントエンドでMutationObserverなどの最新のブラウザー機能が必要な PHP の Web アプリケーションがあります。サイトに記載されているように、この機能をサポートするのは非常に新しいブラウザーのみです。同じことが、私が依存する必要があるいくつかの HTML5 機能にも当てはまります。
私が今達成したいのは、ユーザーが実行しているブラウザーの UserAgent-String を使用してサーバー側を確認し、特定のバージョンを下回っている場合は、使用する必要があることを通知される情報ページにリダイレクトすることです。新しいブラウザ。
私はしばらくの間、適切な正規表現をセットアップして UA 文字列をチェックしようとしてきました。ただし、ブラウザーの製造元が常にクリーンなスキーマを保持しているとは限らないため、少し行き詰まっています。たとえば、Opera ブラウザーの場合、最小バージョン 12 が必要だとします。
- Opera 12.14 の例 1: Opera/9.80 (Windows NT 6.0) Presto/2.12.388 バージョン/12.14
- Opera 12.14 の例 2: Mozilla/5.0 (Windows NT 6.0; rv:2.0) Gecko/20100101 Firefox/4.0 Opera 12.14
これは Firefox 4.0 の場合もあります。 - Opera 11.51: Mozilla/5.0 (互換性あり; MSIE 9.0 ; Windows NT 6.1; de) Opera 11.51
これは Internet Explorer 9.0 の可能性もあります。
また、Opera 12.14 の 2 つの例に示されているように、同じブラウザーとバージョンを追跡するのは注意が必要です: 「Version/12.14」または「Opera 12.14」、またはその他のかなり「ランダムな」文字列です。他のブラウザの場合、問題は非常に似ています。
質問は次のとおりです。どのように進めますか?
方法 1:
useragentstring.com には、ユーザーがウェルカム ページにアクセスしたり、ログインしたりするたびにクエリを実行できる API があります。セキュリティとアプリのパフォーマンスの問題で、これが良いアイデアかどうかはわかりません。
方法 2:
browscap.ini と組み合わせた PHP の get_browser() 関数。この方法では、デスクトップ ブラウザーとモバイル ブラウザーを区別できません。
方法 3:
方法 2 の代わりにphpbrowscapを使用できます。この場合、アクセスできないサーバーのどこかにある browscap.ini に依存することなく、独自の browsercap.ini を定義できます。
または他の方法はありますか?
いくつかのコメントをいただければ幸いです。