______________________________________________________________________________________________________________________

Detectar dispositivo móvil con php

Cuando estás programando una web, tenés que tener en cuenta si ésta se verá en algún  dispositivo móvil ó smartphone. Puede ser que ofrezcas, por ejemplo, servicios de envío de comida, y si no preveés que tu web pueda verse vía celular, tendrás una parte grande del mercado que no puede acceder a tus servicios. Acá les traigo una parte de código hecho en php, que detecta si la web está siendo accedida desde un móvil, y te deriva a la programación correspondiente. Si es mediante web, te deriva a la  vista de un navegador estándar, como el Internet Explorer ó Firefox. El código se basa en una lista de los más conocidos navegadores móviles (alrededor de 90) y algunos casos especiales para Opera Mini, estándares W3C y algunos navegadores para Windows. Este código detecta si la web está siendo accedida por un dispositivo móvil y de acuerdo a ello, mostrará un contenido mas compacto y simple. Por supuesto, hay que programarlo. Y en unos días les haré un review de un programa, el SiteSpinner Pro que nos ayuda en esta tarea. Acá va el código:

<?php

$mobile_browser = ’0′;

//$_SERVER['HTTP_USER_AGENT'] -> el agente de usuario que está accediendo a la página.

//preg_match -> Realizar una comparación de expresión regular

if(preg_match(‘/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone)/i’,strtolower($_SERVER['HTTP_USER_AGENT']))){

$mobile_browser++;

}

//$_SERVER['HTTP_ACCEPT'] -> Indica los tipos MIME que el cliente puede recibir.

if((strpos(strtolower($_SERVER['HTTP_ACCEPT']),’application/vnd.wap.xhtml+xml’)>0) or

((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))){

$mobile_browser++;

}

$mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4));

$mobile_agents = array(

‘w3c ‘,’acs-’,'alav’,'alca’,'amoi’,'audi’,'avan’,'benq’,'bird’,'blac’,

‘blaz’,'brew’,'cell’,'cldc’,'cmd-’,'dang’,'doco’,'eric’,'hipt’,'inno’,

‘ipaq’,'java’,'jigs’,'kddi’,'keji’,'leno’,'lg-c’,'lg-d’,'lg-g’,'lge-’,

‘maui’,'maxo’,'midp’,'mits’,'mmef’,'mobi’,'mot-’,'moto’,'mwbp’,'nec-’,

‘newt’,'noki’,'oper’,'palm’,'pana’,'pant’,'phil’,'play’,'port’,'prox’,

‘qwap’,'sage’,'sams’,'sany’,'sch-’,'sec-’,'send’,'seri’,'sgh-’,'shar’,

‘sie-’,'siem’,'smal’,'smar’,'sony’,'sph-’,'symb’,'t-mo’,'teli’,'tim-’,

‘tosh’,'tsm-’,'upg1′,’upsi’,'vk-v’,'voda’,'wap-’,'wapa’,'wapi’,'wapp’,

‘wapr’,'webc’,'winw’,'winw’,'xda’,'xda-’);

//buscar agentes en el array de agentes

if(in_array($mobile_ua,$mobile_agents)){

$mobile_browser++;

}

//$_SERVER['ALL_HTTP'] -> Todas las cabeceras HTTP

//strpos -> Primera aparicion de una cadena dentro de otra

if(strpos(strtolower($_SERVER['ALL_HTTP']),’OperaMini’)>0) {

$mobile_browser++;

}

if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']),’windows’)>0) {

$mobile_browser=0;

}

if($mobile_browser>0){

// Acá va el contenido porgramado especialmente para celulares.

// Se puede redirigir a la ruta donde este el contenido para moviles

// Por ejemplo: http://miweb.com/movil ó http://movil.miweb.com

echo ‘Programo para navegador cell phone ‘;

}else{

// Este es el contenido para mostrar en navegador de escritorio,

echo ‘Programo para navegador normal’;

}

?>

Fuente Robosomatic Imagen CC jontinjordan



Compartir

Acerca de Andrea Cummins

Andrea Cummins Es Senior Editor de GeeksRoom. Estudió Ciencias de la Computación en la facultad de Cs Exactas de la Universidad de Buenos Aires. Hace 17 años que vive en el campo, en la ciudad de Venado Tuerto, Santa Fe y gracias a Internet, pudo seguir actualizándose con las nuevas tecnologías. A medida que pasó el tiempo se fue capacitando de manera autodidacta y participando en Congresos y Cursos. Su empresa se llama VenadoSoft. Su hobbie es la fotografía y le encanta mostrar su ciudad y su gente a través de su lente. Si quieren pueden ver sus fotos en Flickr, y su participación en Twitter y Facebook
Esta entrada fue publicada en Internet, programacion, Tecnología y etiquetada , , , , . Guarda el enlace permanente.