PHP判斷是手機(jī)端還是PC端 PHP判斷是否是微信瀏覽器
更新時(shí)間:2021年05月12日 11:15:35 作者:wwq_php
這篇文章主要為大家詳細(xì)介紹了PHP判斷是手機(jī)端還是PC端,以及PHP判斷是否是微信瀏覽器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了PHP判斷的兩個(gè)實(shí)例,一是PHP判斷是手機(jī)端還是PC端,二是PHP判斷是否是微信瀏覽器,供大家參考,具體內(nèi)容如下
1、判斷是否是手機(jī)端
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)志,兼容性有待提高。其中'MicroMessenger'是電腦微信
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','MicroMessenger');
// 從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;
}
代碼二
/**
* 移動(dòng)端判斷
*/
function isMobile()
{
// 如果有HTTP_X_WAP_PROFILE則一定是移動(dòng)設(shè)備
if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))
{
return true;
}
// 如果via信息含有wap則一定是移動(dòng)設(shè)備
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;
}
2、判斷是否是微信內(nèi)置瀏覽器
function isWeixin() {
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false) {
return true;
} else {
return false;
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
PHP使用Memcache時(shí)模擬命名空間及緩存失效問(wèn)題的解決
這篇文章主要介紹了PHP使用Memcache時(shí)模擬命名空間及緩存失效問(wèn)題的解決,這里談到的緩存失效主要針對(duì)高并發(fā)場(chǎng)景下取不到緩存的情況,需要的朋友可以參考下2016-02-02
采用thinkphp自帶方法生成靜態(tài)html文件詳解
thinkphp本身自帶了一個(gè)有效的生成靜態(tài)頁(yè)的方法,這篇文章主要介紹了采用thinkphp自帶方法生成靜態(tài)html文件2014-06-06
網(wǎng)頁(yè)游戲開發(fā)入門教程三(簡(jiǎn)單程序應(yīng)用)
用哪種組合,真的不重要。重要的是時(shí)間和成本。復(fù)雜的地方在數(shù)據(jù)的交互和完善,而不在技術(shù)或效果的實(shí)現(xiàn)。2009-11-11
AES加解密在php接口請(qǐng)求過(guò)程中的應(yīng)用示例
在我們的編程的過(guò)程中,經(jīng)常會(huì)遇到加密的情況,怎么才會(huì)合理運(yùn)用,本篇文章主要介紹了AES加解密在php接口請(qǐng)求過(guò)程中的應(yīng)用示例,有需要的可以了解一下。2016-10-10

