2

フロントエンドで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 を定義できます。

または他の方法はありますか?

いくつかのコメントをいただければ幸いです。

4

3 に答える 3

1

サーバー上ですべてを実行したいのはなぜですか? JavaScriptブラウザーまたはオブジェクト検出を使用し、JavaScript を使用してユーザーにメッセージを表示します。

于 2013-12-30T16:41:26.293 に答える