In today’s era when mobile devices are so popular, we may often need to use page matching for mobile devices when doing web front-end development . Of course, we can use responsive page design to handle the front-end matching problem, but the responsive page just does not display certain codes, but it will still be loaded into the user's mobile device. In order to better take care of the user's mobile browsing experience and reduce unnecessary loading. We can then use PHP to reduce the user's code loading and improve the user's experience when browsing the page. Since there are now many types of mobile devices and various browsers, simply judging by User-Agent cannot completely solve the problem.
function isMobile()
{
// If there is HTTP_X_WAP_PROFILE, it must be a mobile device
if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))
{
return true;
}
// If the via information contains wap, it must be a mobile device, and some service providers will block this information
if (isset ($_SERVER['HTTP_VIA']))
{
// If not found, it is false, otherwise it is true
return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;
}
// Determine the client flag sent by the mobile phone, compatibility needs to be improved
if (isset ($_SERVER['HTTP_USER_AGENT']))
{
$clientkeywords = array ('nokia',
'sony',
'ericsson',
'mot',
'samsung',
'htc',
'sgh',
'lg',
'sharp',
'sie-',
'philips',
'panasonic',
'alcatel',
'lenovo',
'iphone',
'ipod',
'blackberry',
'meizu',
'android',
'netfront',
'symbian',
'ucweb',
'windowsce',
'palm',
'operamini',
'operamobi',
'openwave',
'nexusone',
'cldc',
'midp',
'wap',
'mobile'
);
// Find keywords for mobile browsers from HTTP_USER_AGENT
if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT'])))
{
return true;
} }
}
// Agreement method, because it may be inaccurate, leave it to the final judgment
if (isset ($_SERVER['HTTP_ACCEPT']))
{
// If it only supports wml and does not support html, it must be a mobile device
// If wml and html are supported but wml comes before html, it is a mobile device
if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html'))))
{
return true;
} }
}
return false;
}
?>
Currently this method can be used for most mobile device judgments. When using it, you can also add some UA judgment parameters as needed.