PHP: muestra mensajes en ciertos navegadores

He buscado esto y todo lo que encuentro es mucho más de lo que necesito. Ya he hecho esto en JavaScript, pero preferiría usar PHP. ¿Qué debo hacer para mostrar un mensaje a mis visitantes, según el navegador que estén usando?

Ejemplo:

El usuario de IE vería: “Estás usando Internet Explorer”

El usuario de Firefox vería: “Estás usando Mozilla Firefox”

No estoy seguro si hay otros navegadores más importantes además de IE, Firefox, Chrome, Safari y Opera. Pero al menos quisiera tener un mensaje dirigido a cada uno de esos navegadores de forma individual. Gracias.

    Para identificar el lado del servidor del navegador del usuario, tendrá que analizar la variable $_SERVER['HTTP_USER_AGENT']

    … O, probablemente sea mejor, use la función get_browser ; solo tenga en cuenta que deberá configurar algo en php.ini, o recibirá este tipo de advertencia:

     Warning: get_browser() [function.get-browser]: browscap ini directive not set 

    Al igual que la página del manual de PHP dice:

    Nota: Para que esto funcione, la configuración de tu browscap en php.ini debe apuntar a la ubicación correcta del archivo browscap.ini en tu sistema. browscap.ini no se incluye con PHP, pero puede encontrar un archivo php_browscap.ini actualizado aquí.

    Mientras que browscap.ini contiene información en muchos navegadores, depende de las actualizaciones del usuario para mantener la base de datos actualizada. El formato del archivo es bastante autoexplicativo.

    Después de descargar ese archivo y agregar esta línea a php.ini:

     browscap = /home/squale/developpement/tests/temp/php_browscap.ini 

    La siguiente porción de código:

     var_dump(get_browser(null, true)); 

    Me da:

     array 'browser_name_regex' => string '^mozilla/5\.0 (x11; .*linux.*; .*rv:1\.9.*) gecko/.*$' (length=53) 'browser_name_pattern' => string 'Mozilla/5.0 (X11; *Linux*; *rv:1.9*) Gecko/*' (length=44) 'parent' => string 'Mozilla 1.9' (length=11) 'platform' => string 'Linux' (length=5) 'browser' => string 'Mozilla' (length=7) 'version' => string '1.9' (length=3) 'majorver' => string '1' (length=1) 'minorver' => string '9' (length=1) 'alpha' => string '1' (length=1) 'frames' => string '1' (length=1) 'iframes' => string '1' (length=1) 'tables' => string '1' (length=1) 'cookies' => string '1' (length=1) 'javaapplets' => string '1' (length=1) 'javascript' => string '1' (length=1) 'cssversion' => string '2' (length=1) 'supportscss' => string '1' (length=1) 'beta' => string '' (length=0) 'win16' => string '' (length=0) 'win32' => string '' (length=0) 'win64' => string '' (length=0) 'backgroundsounds' => string '' (length=0) 'cdf' => string '' (length=0) 'vbscript' => string '' (length=0) 'activexcontrols' => string '' (length=0) 'isbanned' => string '' (length=0) 'ismobiledevice' => string '' (length=0) 'issyndicationreader' => string '' (length=0) 'crawler' => string '' (length=0) 'aol' => string '' (length=0) 'aolversion' => string '0' (length=1) 

    en firefox 3.5; y:

     array 'browser_name_regex' => string '^.*$' (length=4) 'browser_name_pattern' => string '*' (length=1) 'browser' => string 'Default Browser' (length=15) 'version' => string '0' (length=1) 'majorver' => string '0' (length=1) 'minorver' => string '0' (length=1) 'platform' => string 'unknown' (length=7) 'alpha' => string '' (length=0) .... 'aol' => string '' (length=0) 'aolversion' => string '0' (length=1) 

    En una versión reciente (4.0.203.2) de google chrome para Linux, bueno, considerando que es una especie de comstackción nocturna, supongo que es normal que no se reconozca …

    Como referencia, aquí está su cadena de agente de usuario:

     string 'Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.203.2 Safari/532.0' (length=109) 

    Este espectáculo que get_ browser is agradable; pero quizás no sea perfecto para algunos navegadores de prueba de vanguardia, aún así, debería funcionar bien con la mayoría de los navegadores “comunes”, supongo …

    La mayoría de los clientes envían una cadena de agente de usuario y puede usar get_browser para “traducir” esa cadena en algo más “informativo”.
    Pero el cliente puede enviar cualquier cadena que desee, por ejemplo, navegadores de ópera que se identifican a sí mismos como exploradores de Internet.

    Creo que la única forma de detectar el navegador en PHP es desde el agente de usuario, desde HTTP_USER_AGENT.

    O usando la función PHP get_browser () -> http://us3.php.net/function.get-browser

     < ? php
       $ browser = get_browser ();
       echo 'Usted está usando'. $ browser ['browser'];
     ?>
    

    más información en http://www.php.net/function.get-browser

    puedes obtener el archivo browscap.ini aquí http://browsers.garykeith.com/downloads.asp

    En realidad, no hay una buena forma de determinar las capacidades del navegador desde el lado del servidor, ya que cada usuario, independientemente de su versión del navegador, puede manipular la configuración del navegador obteniendo diferentes capacidades (deshabilitando Java, por ejemplo).

    debe recurrir a la parte del cliente combinada con el lado del servidor, hay muchas bibliotecas de jScript que pueden hacer esto, por ejemplo, el texto del enlace