3

PHPを使用してユーザーのブラウザを特定する方法は?

したがって、ユーザーのブラウザーが IE の場合は変数 $alert="onbeforeunload" となり、Firefox (else) などの IE でない場合は $alert="onload.

助けていただければ幸いです。

ありがとう

また、PHP サーバーに browscap.ini をインストールできないことにも注意してください。

4

4 に答える 4

2

このコードがあなたのために働くかどうか見てください

<?php
function detect_ie(){
    return (sizeof(explode("MSIE",$_SERVER['HTTP_USER_AGENT'])) > 1);
}

if (detect_ie())
    $event = "onbeforeunload";
else
    $event = "onload";

?>
于 2010-04-17T13:21:06.827 に答える
1

できません。100% の精度ではありません。ユーザー エージェントをチェックするのが最善の方法ですが、ユーザー エージェントはそれを提供しないことも偽造することも自由なので、それに依存しないようにしてください。

$ua = $_SERVER['HTTP_USER_AGENT'];

ブラウザが IE の場合、(おおよそ) 一致するはずです (# は数字です)。

Mozilla/#.0 (compatible;  MSIE #.##;

正規表現は次のようになります

'~^Mozilla/[0-9]\.0 (compatible;\s+MSIE~i'

または、文字列「MSIE」をチェックすることもできます。これは、より単純で、わずかに厳密ではありません。

しかし、@Michalが言ったように、 get_browserマニュアルページには他の(より良い)実装があります

于 2010-04-17T12:10:58.537 に答える
0

使用する$_SERVER['HTTP_USER_AGENT']

「IE」の直後に数字が続くかどうかを確認します。

ただし、JavaScript自体でこれを行いたいと思います。

if (typeof window.onbeforeunload !== "undefined") window.onbeforeunload = myFunc;
else window.onunload = myFunc;
于 2010-04-17T12:09:41.410 に答える
0

Javascript ライブラリは、さまざまなブラウザーの動作を検出して処理するのにはるかに優れています。jQuery のような成熟したライブラリにこれを処理させるだけで問題ありません。

于 2010-04-17T13:33:25.017 に答える