Riconoscere un dispositivo mobile con Php
Uno dei punti “calienti” di quest’ultimo anno per i web designer è stato quello di realizzare siti internet adattati per dispositivi mobile.
![]()
Su Ebug ne abbiamo parlato tanto, vedendo il tutto su diverse prospettive come quelle delle media queries di css3 che ci permettono di adattare il sito internet a seconda della risoluzione attraverso i css oppure quello di utilizzare plugin di wordpress e framework di css attraverso librerie javascript.
Oggi analizzeremo invece la possibilità di riconoscere il dispositivo che sta visitando il nostro progetto grazie a php.
Ma a cosa potrà mai servire tale meccanismo? Nella stragrande maggioranza dei casi i layout cambiando le dimensione e la loro forma conservano la loro struttura in grandi linee.
Nei layout un po’ più stravaganti dove jquery ha preso il sopravvento, molti layout devono essere rifatti d’accapo, e proprio per questo creare un sito mobile a parte.
Grazie a php ora riusciremo a riconoscere se chi sta visitando il sito web sta usando un dispositivo desktop oppure un dispositivo mobile.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | <?php // settiamo a zero la variabile mobile_browser $mobile_browser = '0'; // controlliamo se l'user agent corrisponde a un dispositivo mobile if (preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|android)/i', strtolower($_SERVER['HTTP_USER_AGENT']))) { $mobile_browser++; } // controlliamo HTTP_ACCEPT corrisponde alla tecnologia WAP per telefonini 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++; } // estraiamo i primi 4 caratteri da USER_AGENT e creiamo un array con tutti i header mobile $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-'); // se corrisponde a mobile aumentiamo la nostra variabile di 1 if (in_array($mobile_ua,$mobile_agents)) { $mobile_browser++; } if (strpos(strtolower($_SERVER['ALL_HTTP']),'OperaMini') > 0) { $mobile_browser++; } if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'windows') > 0) { $mobile_browser = 0; } // quindi se mobile_browser è inferiore di 0 vuol dire che un dispositivo mobile if ($mobile_browser > 0) { // reindirizzamento per mobile header('Location: http://www.tuosito.it/mobile/'); } else { // altrimenti restiamo dove siamo echo ""; } ?> |
Questo codice va messo in cima alla pagina così da evitare il caricamento di altre stringhe di codice php. Lo sto utilizzando io per il mio nuovo layout che vi presenterò su Facebook
Se vi fosse piaciuto l’articolo, se avreste qualche domanda oppure voleste dire la vostra potreste scrivere un commento
Potresti trovare interessante anche





17 giugno 2011

ciao Rocco,
ti volevo segnalare una funzione molto utile per tracciare i browser mobile:
http://detectmobilebrowsers.mobi/