3

如何确定使用PHP的用户的浏览器?

因此,如果用户浏览器是 IE,则变量 $alert="onbeforeunload",如果不是 IE,例如 Firefox (else),则 $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 回答