您好,登錄后才能下訂單哦!
現(xiàn)在移動(dòng)設(shè)備大熱的年代,可能我們?cè)谧鰓eb前端開(kāi)發(fā)的時(shí)候經(jīng)常會(huì)需要用到對(duì)移動(dòng)設(shè)備的頁(yè)面匹配。當(dāng)然我們可以用響應(yīng)式頁(yè)面設(shè)計(jì)來(lái)處理前端的匹配問(wèn)題,但是響應(yīng)式頁(yè)面只是不顯示某些代碼,但是還是會(huì)加載到用戶的移動(dòng)設(shè)備中。為了更好的照顧到用戶手機(jī)瀏覽的體驗(yàn),減少不必要的加載。我們可以再通過(guò)PHP的方式來(lái)減少用戶的代碼加載,提高用戶瀏覽頁(yè)面時(shí)的體驗(yàn)。由于現(xiàn)在移動(dòng)設(shè)備的種類繁多、而且瀏覽器五花八門,所以僅僅是通過(guò)User-Agent來(lái)判斷已經(jīng)不能完全解決問(wèn)題了。
<?php
function isMobile()
{
// 如果有HTTP_X_WAP_PROFILE則一定是移動(dòng)設(shè)備
if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))
{
return true;
}
// 如果via信息含有wap則一定是移動(dòng)設(shè)備,部分服務(wù)商會(huì)屏蔽該信息
if (isset ($_SERVER['HTTP_VIA']))
{
// 找不到為flase,否則為true
return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;
}
// 判斷手機(jī)發(fā)送的客戶端標(biāo)志,兼容性有待提高
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'
);
// 從HTTP_USER_AGENT中查找手機(jī)瀏覽器的關(guān)鍵字
if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT'])))
{
return true;
}
}
// 協(xié)議法,因?yàn)橛锌赡懿粶?zhǔn)確,放到最后判斷
if (isset ($_SERVER['HTTP_ACCEPT']))
{
// 如果只支持wml并且不支持html那一定是移動(dòng)設(shè)備
// 如果支持wml和html但是wml在html之前則是移動(dòng)設(shè)備
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;
}
?>
目前這個(gè)方法可以用于大多數(shù)的移動(dòng)設(shè)備判斷,使用時(shí)也可以根據(jù)需要自行添加一些UA的判斷參數(shù)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。