如何确定使用PHP的用户的浏览器?
因此,如果用户浏览器是 IE,则变量 $alert="onbeforeunload",如果不是 IE,例如 Firefox (else),则 $alert="onload。
非常感谢您的帮助。
谢谢
另请注意,我无法在我的 PHP 服务器上安装 browscap.ini。
看看这个代码是否适合你
<?php
function detect_ie(){
return (sizeof(explode("MSIE",$_SERVER['HTTP_USER_AGENT'])) > 1);
}
if (detect_ie())
$event = "onbeforeunload";
else
$event = "onload";
?>
你不能。没有 100% 的准确率。最好的方法是检查用户代理,但是用户可以自由地不提供它,或者伪造它,所以尽量避免依赖它。
$ua = $_SERVER['HTTP_USER_AGENT'];
如果浏览器是 IE,它应该(大致)匹配(其中 # 是一个数字)
Mozilla/#.0 (compatible; MSIE #.##;
正则表达式类似于
'~^Mozilla/[0-9]\.0 (compatible;\s+MSIE~i'
或者,您可以只检查字符串“MSIE”,这会更简单且不那么严格。
但正如@Michal 所说,get_browser 手册页上还有其他(更好的)实现
采用$_SERVER['HTTP_USER_AGENT']
检查它是否包含直接后跟数字的“IE”。
不过,我宁愿在 javascript 本身中执行此操作。
if (typeof window.onbeforeunload !== "undefined") window.onbeforeunload = myFunc;
else window.onunload = myFunc;
Javascript 库更好地检测和处理不同的浏览器行为。只要让像 jQuery 这样的成熟库来处理这个问题,你就会没事的。