Como determinar o navegador do usuário usando o PHP?
Pergunta
Como determinar o navegador do usuário usando o PHP?
Para que, se o navegador dos usuários for, IE, a variável $ alert = "onBeforeUnload" e se não for, por exemplo, Firefox (else), então $ alert = "Onload.
A ajuda é muito apreciada.
Obrigado
Observe também que não posso instalar o Browscap.ini no meu servidor PHP.
Solução
Veja se este código funciona para você
<?php
function detect_ie(){
return (sizeof(explode("MSIE",$_SERVER['HTTP_USER_AGENT'])) > 1);
}
if (detect_ie())
$event = "onbeforeunload";
else
$event = "onload";
?>
Outras dicas
Você não pode. Não com 100% de precisão. O melhor método que é verificar o agente do usuário, no entanto, o usuário é gratuito para não fornecê -lo ou fingir, então tente evitar confiar nele.
$ua = $_SERVER['HTTP_USER_AGENT'];
Se o navegador for, isto é, deve (rastrealmente) corresponder (onde # é um número)
Mozilla/#.0 (compatible; MSIE #.##;
Para o qual o regex seria algo como
'~^Mozilla/[0-9]\.0 (compatible;\s+MSIE~i'
Como alternativa, você pode verificar a string "msie", que seria mais simples e um pouco menos rigorosa.
Mas, como @michal disse, existem outras (melhores) implementações no página manual get_browser
usar $_SERVER['HTTP_USER_AGENT']
Verifique se ele contém "IE" diretamente seguido por um número.
Eu prefiro fazer isso no próprio JavaScript.
if (typeof window.onbeforeunload !== "undefined") window.onbeforeunload = myFunc;
else window.onunload = myFunc;
As bibliotecas JavaScript são muito melhores para detectar e lidar com diferentes comportamentos do navegador. Deixe uma biblioteca madura como o jQuery lidar com isso e você ficará bem.