21

私は(少なくともあまり目立たないものを)持つための信頼できる方法を探していました:

  1. ブラウザの名前
  2. バージョン
  3. そしてそれが置かれているプラ​​ットフォーム(OS)
  4. おそらくもっと多くの情報がありますが、上記の3つの情報で十分です。

これらの情報に従ってカスタムコンテンツを表示したいのですが、例:

ユーザーが自分のブラウザでCookieをクリアする方法を知りたい場合。多くのブラウザですでに多くのコンテンツを利用できるとしましょう。バージョンそして私は適切なコンテンツを自動的にロードしたい

これらの値を取得するためにJavascriptを使用しない方法はありますか?

ブラウザが見つからない、または不正確なユースケースがあります。だから私は最も信頼できる解決策が欲しいです。

これが私が必要としていることを正確に行う2つのウェブサイトです:

  1. www.whatismybrowser.com(PHPでそれを行う方法を知るために所有者に連絡しました)
  2. HawkBrowser本当に徹底的なテスト、無料ではありません

部分的な解決策とのその他のリンク:

  1. 2012年8月の古いbrowsercapを使用したupgrademybrowser.org ソース
  2. Googleのwww.whatbrowser.org

何日もかけて試してみましたが、成功しませんでした。Stackoverflowコミュニティから多くのヒントを見つけました:

  1. get_browser ()を使用したbrowsercap。プロジェクトは中止され(現在は2012年8月8日)、最新の人気のあるハンドヘルドデバイスは検出されません。
  2. Javascript検出機能アプローチ:Modernirz。私がやりたいことには良くないアプローチであり、長く、頻繁に更新する必要があります。
  3. jQuery.browser十分ではない可能性が十分ではありません。
  4. quirksmode.org javascriptであり、現時点ではモバイルでは正確ではなく、PHPバージョンを好むでしょう。

その他の便利なリンク:

  1. Stakoverflow Answer 1
  2. Stackoverflow Answer 2
  3. PHPモバイル検出
  4. PIWIK分析レポート

編集1 これまでのところ私は答えとコメントをテストしました。これらのソリューションは非常に満足のいくものです。

  • PHPモバイルは、最後のバージョンが本当に良いことを検出します。これを使用している場合は、クライアントがプロジェクトに貢献できるように、例のフォームをクライアントに提供するとよいでしょう。(@Pekkaに感謝します)
  • WURFLは最近ではありませんが、非常に優れています。(@Ian Robertsに感謝します)

    編集 2PHPモバイル検出はWURFLを使用します

アップデート

受け取ったヘッダーが他のライブラリによって変更されていないことを確認してください。

たとえば、OWASP PhpSec [ABANDONED]などの一部のセキュリティライブラリはヘッダー構造をカスタムオブジェクトに変更し、 PHPモバイル検出は必要なすべての情報にアクセスできなくなります

OWASP PhpSec [ABANDONED]を使用している方のために、httpライブラリはグローバルヘッダーオブジェクト構造を変更しています。(2013年12月)したがって、問題が発生した場合は、 httpライブラリを使用してOWASP PhpSecクラスを含める前に、PHPモバイル検出を使用してください。

4

2 に答える 2

3

WURFLを検討しましたか?その主な目的はモバイルデバイスのブラウザを分類することですが、デスクトップのブラウザも識別するモードがあると主張しています。

于 2012-12-08T18:12:28.677 に答える
0

get_browser()から取得するPHPのブラウザ情報

PHPサイトへのajax呼び出しを使用できるように、ユーザーエージェントに関する情報を提供します

例えば

PHP

$info = get_browser(null, true);
echo json_encode($info);

get_browserによって提供される配列は次のようになります

Array
(
    [browser_name_regex] => ^mozilla/5\.0 (windows; .; windows nt 5\.1; .*rv:.*) gecko/.* firefox/0\.9.*$
    [browser_name_pattern] => Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9*
    [parent] => Firefox 0.9
    [platform] => WinXP
    [browser] => Firefox
    [version] => 0.9
    [majorver] => 0
    [minorver] => 9
    [cssversion] => 2
    [frames] => 1
    [iframes] => 1
    [tables] => 1
    [cookies] => 1
    [backgroundsounds] =>
    [vbscript] =>
    [javascript] => 1
    [javaapplets] => 1
    [activexcontrols] =>
    [cdf] =>
    [aol] =>
    [beta] => 1
    [win16] =>
    [crawler] =>
    [stripper] =>
    [wap] =>
    [netclr] =>
)

もちろん、ブラウザの文字列を必要に応じて変更できるため、これは信頼できるソリューションではありません。

于 2012-12-08T18:12:56.897 に答える