get_browser() - funcion de PHP.
Parece interesante, el unico inconveniente es que hay que descargar el archivo browscap.ini y editar php.ini para agregar o editar la directiva browscap=/ruta/para/browscap.ini
No es que sea imposible de lograr, pero si resultara incomodo buscar alternativas en servidores compartidos donde no se tiene acceso a php.ini ni puedes cambiar directivas por .htaccess ni por ini_set()... suficiente para alejarme de esto.
Browscap - Clase PHP
Tambien requiere la descarga de browscap.ini, pero lo hace automaticamente por el primer medio que encuentre disponible fsock, file_get_contents o cURL y crea un par de archivos temporales en la ruta que especifiquemos al instanciar la clase.
Ejemplo de uso:
Código PHP:
Ver original
$bc = new Browscap('./'); $browser = $bc->getBrowser(); echo '<pre>'; echo '</pre>';
Los resultados para un Samsung Galaxy Fit son:
Código:
Lo mejor de todo esto es que basta un if($browser->isMobileDevice) para obtener lo que deseamos y, aparentemente, el cache se actualizara de forma automatica cada determinado tiempo, segun se defina en la propiedad $updateInterval, 5 dias por default.stdClass::__set_state(array( 'browser_name' => 'Mozilla/5.0 (Linux; U; Android 2.2.1; es-us; GT-S5670L Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1', 'browser_name_regex' => '^mozilla/5\\.0 \\(linux; u; android 2\\.2.*; .*; .*\\) applewebkit/5.* \\(khtml, like gecko\\) .*version/4\\.0 mobile safari/5.*$', 'browser_name_pattern' => 'Mozilla/5.0 (Linux; U; Android 2.2*; *; *) AppleWebKit/5* (KHTML, like Gecko) *Version/4.0 Mobile Safari/5*', 'Parent' => 'Android', 'Version' => '2.2', 'MajorVer' => 2, 'MinorVer' => 2, 'Browser' => 'Android', 'Platform' => 'Android', 'Frames' => true, 'IFrames' => true, 'Tables' => true, 'Cookies' => true, 'JavaScript' => true, 'isMobileDevice' => true, 'CssVersion' => 2, 'Alpha' => false, 'Beta' => false, 'Win16' => false, 'Win32' => false, 'Win64' => false, 'BackgroundSounds' => false, 'VBScript' => false, 'JavaApplets' => false, 'ActiveXControls' => false, 'isBanned' => false, 'isSyndicationReader' => false, 'Crawler' => false, 'AolVersion' => 0, ))
Mobile Detect - Clase de PHP
Un pequeño archivo que busca info en los encabezados HTTP, es una lastima que solo consegui el Samsung para pruebas, me gustaria ver si esto funciona con Nokia, Sony y alguna otra marca para saber si es realmente fiable.
WURFL - API para PHP
Confieso que todavia estoy revisando la documentacion y, aunque parece muy completo, me gustan mas las dos anteriores.
Espero que mis sobrinos me presten sus celulares para hacer las pruebas necesarias y ya estare contando los resultados. En calidad de mientras, si alguien tiene oportunidad de probar, mucho agradeceria si nos trae algunos avances.