martes, 11 de diciembre de 2012

Detectar dispositivos móviles con PHP


Ayer en el blog de Adsense publicaron un recurso para alternar las banner adsense en diseños responsivos, esos que se adaptan según el dispositivo desde el que se accede, el recurso es bueno y sirve pero en ciertos casos es escaso y por ello les dejo estos códigos PHP para detectar visitantes desde dispositivos móviles y hacer una u otra cosa según nos convenga.
Desde hace unas semanas Google Adsense viene entregando en mi cuenta recomendaciones para mudar varios banner de la medida 336×250 a 300×250, lo cual indica que hay muchos clientes para ese formato pero por otro parte es un tamaño ideal para el mercado móvil junto con el banner corto de 320×50. Para poder usar unos u otros según convenga desde el blog de Adsense ofrecen este código (en imagen, gracias por la gauchada) que sirve para alternar banner en diseños responsivos, la idea es mostrar según la resolución de pantalla del visitante un banner más grande y si se achica la pantalla uno de menores proporciones:
Pero como les decía  puede que por su theme actual u otras limitaciones ese código no les resulte útil y lo que quieran sea detectar si ingresan desde un dispositivo movil para realizar diferentes tareas, entonces les recomiendo este abultado pero a su vez sencillo código:
Creamos un archivo mobile.php que determinara si el visitante usa alguno de esos navegador, lo cual indicara que es un visitante movil.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
< ?php
$is_mobile=eregi('ipod|iphone|ipad|android|opera mini|blackberry|palm os|windows ce|windows mobile|palm|hiptop|avantgo|plucker|xiino|blazer|elaine|iris|3g_t|
windows ce|opera mobi|windows ce; smartphone;|windows ce; iemobile|mini 9.5|vx1000|lge |m800|e860|u940|ux840|compal|wireless| mobi|ahong|lg380|lgku|lgu900|lg210|lg47|lg920|lg840|lg370|sam-r|mg50|s55|g83|t66|vx400|mk99|d615|d763|el370|sl900|mp500|samu3|
samu4|vx10|xda_|samu5|samu6|samu7|samu9|a615|b832|m881|s920|n210|
s700|c810|_h797|mobx|sk16d|848b|mowser|s580|r800|471x|v120|rim8|
c500foma:|160x|x160|480x|x640|t503|w839|i250|sprint|w398samr810|
m5252|c7100|mt126|x225|s5330|s820|htil-g1|fly v71|s302|-x113|novarra|
k610i|-three|8325rc|8352rc|sanyo|vx54|c888|nx250|n120|mtk|
c5588|s710|t880|c5005|i;458x|p404i|s210|c5100|teleca|s940|c500|s590
|foma|samsu|vx8|vx9|a1000|_mms|myx|a700|gu1100|bc831|e300|ems100|
me701|me702m-three|sd588|s800|8325rc|ac831|mw200|brew|d88|htc\/|
htc_touch|355x|m50|km100|d736|p-9521|telco|sl74|ktouch|m4u\/|me702|
8325rc|kddi|phone|lg|sonyericsson|samsung|240x|x320|vx10|nokia|sony
cmd|motorola|up.browser|up.link|mmp|symbian|smartphone|midp|wap|
vodafone|o2|pocket|kindle|mobile|psp|treo', $_SERVER['HTTP_USER_AGENT'] );
?>
Luego lo usamos donde queremos:
1
2
3
4
5
6
7
8
9
10
11
< ?php
include "mobile.php";
if($is_mobile)
{
echo "esto es un movil";
}
else
{
echo "esto no es un movil";
}
?>
Y si necesitan más esta la librería php-mobile-detect que recomendaron en yukei, la cual es mucho más avanzada que lo anterior ya que detecta mediante funciones que tipo de SO es (Android, iPhone, Blackberry, etc) y también diferencia entre móviles y tabletas. Una porción del código que podrían utilizar seria:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
< ?php
 
include('Mobile_Detect.php');
$detect = new Mobile_Detect();
 
if ( $detect->isAndroidtablet() || $detect->isIpad() || $detect->isBlackberrytablet() ) {
    // mostar versión para tablets
} elseif( $detect->isAndroid() ) {
    // versión Android
} elseif ( $detect->isIphone() ) {
    // versión iPhone
} elseif ( $detect->isMobile() ) {
    // versión para otros móviles
} else{
    // versión "normal"
}
 
?>

1 comentario:

Anónimo dijo...

Each game will last one week. [url=http://www.ukdresshop.co.uk]Cocktail Dresses uk[/url]
[url=http://www.expeditionparkaca.com]canada goose toronto factory[/url] Coin collecting constructed from wool skin color protect can be a cast perfect-fit in your calculating apparatus.
She currently sells under the name Vintage Touch, in brick mortar antique mall called Antique Crossroads in Hagerstown, MD. [url=http://www.londongenuinepandora.com]thomas sabo bracelet[/url] They also presented their projects that are related to public health and education (a process that took them over six months to prepare).. These are still voluminous and most of the knobs are on top so they don't have side clearance issues like the Panaracers I tried. Kitten heels as well are a kind of reduced heels that produces alluring curves on your body posture thus making you appear exceptionally seductive..
The boss of Belstaff--Manuele Malenotti once indicated to Reuters," Each jacket is tailored and has the signature of Italian prime minister silvio berlusconi". [url=http://www.femmescanadagoose.com]Canada Goose Chilliwack Bomber[/url] For those under 30, term life insurance is sufficient, provided you have no mortgage.
Burberry Candy Check Snowdrop handbag is compact, sleekly styled and just right for today's busy woman. To add a bit of edge to your outfit, don a black belt with chunky silver hardware or another punk-inspired accessory. 127-62). [url=http://www.promkleidde.com/]mori lee prom dresses[/url]