2010-06-09 11 views
7

no funciona. Es decir, tengo muchas secuencias de comandos para obtener la ip y el sistema operativo, pero get_browser es una función interna y debería funcionar, pero no es así. Cuando intento obtener una print_r en la función que obtengo.get_browser no funciona

Array ([browser_name_regex] => §^.*$§ [browser_name_pattern] => * [browser] => Default Browser [version] => 0 [majorver] => 0 [minorver] => 0 [platform] => unknown [alpha] => [beta] => [win16] => [win32] => [win64] => [frames] => 1 [iframes] => [tables] => 1 [cookies] => [backgroundsounds] => [cdf] => [vbscript] => [javaapplets] => [javascript] => [activexcontrols] => [isbanned] => [ismobiledevice] => [issyndicationreader] => [crawler] => [cssversion] => 0 [supportscss] => [aol] => [aolversion] => 0) 

Estoy usando win7 y firefox. Y tengo el último navegador y configurado en php.ini. Sin ese php, se devuelve el error mientras que Idont obtiene uno.

+0

favor evitar hacer la detección del navegador como este. Es propenso al fracaso. La mayoría de los expertos de la industria recomiendan usar ** detección de características ** en el navegador usando javascript para determinar si el navegador del usuario es capaz de ejecutar su código. – Spudley

Respuesta

6

de php.net:

Nota: Para que esto funcione, el ajuste de configuración browscap en php.ini debe apuntar a la correcta ubicación del archivo browscap.ini en su sistema. browscap.ini no es incluido con PHP, pero puede encontrar un archivo actualizado »php_browscap.ini aquí. Mientras que browscap.ini contiene información de en muchos navegadores, depende de las actualizaciones de los usuarios para mantener actualizada la base de datos . El formato del archivo es bastante autoexplicativo.

suena como su browscap.ini no está actualizado.

9

Asegúrese de tener un archivo browscap actualizado. Lea las notas en la documentación de get_browser.

Si no es un administrador del servidor, consulte phpbrowcap que implementa la misma funcionalidad pero le permite utilizar otro archivo broswcap que no sea el servidor.

13

He escuchado a muchas personas quejarse acerca de cómo la función simplemente no funciona en su sitio. Si usted toma una mirada cuidadosa a la manual, se dará cuenta de la siguiente nota más abajo:

  1. Lo primero que hay que hacer es comprobar si el sistema ha browscap.ini instalado y si no se ¿Puedes hacerlo tú solo? invocar la función phpinfo(). Esto le ayudará a recopilar información sobre su sistema:

  2. Si Browscap no está instalado, busque la ruta del archivo de configuración (php.ini). Aquí es donde se encuentra el archivo de configuración de PHP y habilitar browscap settings.After haya terminado, debe ser algo como esto:

    [browscap]

    browscap = "D: \ xampp \ php \ extras \ browscap.ini"

  3. Reiniciar el Apache probar el código de abajo

    $ browser = get_browser (null, true);

    print_r ($ browser);

  4. si todavía su get_browser() no funciona correctamente, puede haber un problema con su archivo browscap.ini. Puede descargar el archivo browscap.ini actualizado desde https://browsers.garykeith.com/downloads y reemplazar su browscap.ini se ubicará en /php/extras/browscap.ini

  5. Una vez que haya terminado, reinicie su apache nuevamente y ejecute el código.

1

perdí mucho tiempo para aprender a utilizar que func,

Aunque finalmente comprendí que el hombre nunca debería usar esa función, que matará a su rendimiento !!!

prueba con/sin get_browser para verificar el resultado.

ab -c 100 -n 100 http://yourserver/ 

uso preg_match_all('/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i', $_SERVER['HTTP_USER_AGENT']) lugar

+0

Advertencia: su código fallará con IE11 (que ya no incluye 'MSIE' en su cadena UA). Probablemente otros también. – Spudley