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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top