Demo: detect mobile browser with PHP

Based on the Andy Moore's script who designed the lightweight PHP script back in 2007.

The User Agent string can be switched to a completely different one so that you can see how the browser is recognized.

Note, it's designed to detect the real life strings. Bogus user agents produce unpredictable results.

How to detect a smartphone with PHP

Add the following at the beginning of a page (but not in the index.php):

<?php 
$mobile_browser 
'0';
             
if (
preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|android)/i'strtolower($_SERVER['HTTP_USER_AGENT']))) {
    
$mobile_browser++;
}
 
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'], 04));
$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-');
 
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;
}
 
if (
$mobile_browser 0) {
   
// do something
}
else {
   
// do something else

?>