欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  技术分享

php判断是否手机浏览器访问_php判断手机还是电脑

程序员文章站 2021-12-02 19:47:35
...

由于我的博客是采用响应式布局的、难免会遇到需要判断是手机用户还是电脑用户、其实我的博客关于响应式的功能已经奶不错了、但是因为百度广告还没有推出响应式的功能、那么在手机访问的时候如果要显示百度广告、体验会很差、所有为响应式做的努力都白费了、下面我们找到判断为手机用户php代码分享给大家


方法一

<?php  
function isMobile(){    
    $useragent=isset($_SERVER[´HTTP_USER_AGENT´]) ? 
		$_SERVER[´HTTP_USER_AGENT´] : ´´;    
    $useragent_commentsblock=preg_match(´|(.*?)|
		´,$useragent,$matches)>0?$matches[0]:´´;      
    function CheckSubstrs($substrs,$text){    
        foreach($substrs as $substr)    
            if(false!==strpos($text,$substr)){    
                return true;    
            }    
            return false;    
    }  
    $mobile_os_list=array(´Google Wireless Transcoder´,´Windows CE´,
		´WindowsCE´,´Symbian´,´Android´,´armv6l´,´armv5´,´Mobile´,
		´CentOS´,´mowser´,´AvantGo´,´Opera Mobi´,´J2ME/MIDP´,
		´Smartphone´,´Go.Web´,´Palm´,´iPAQ´);  
    $mobile_token_list=array(´Profile/MIDP´,´Configuration/CLDC-´,
		´160×160´,´176×220´,´240×240´,´240×320´,´320×240´,´UP.Browser´,
		´UP.Link´,´SymbianOS´,´PalmOS´,´PocketPC´,´SonyEricsson´,
		´Nokia´,´BlackBerry´,´Vodafone´,´BenQ´,´Novarra-Vision´,
		´Iris´,´NetFront´,´HTC_´,´Xda_´,´SAMSUNG-SGH´,´Wapaka´,
		´DoCoMo´,´iPhone´,´iPod´);    
                
    $found_mobile=CheckSubstrs($mobile_os_list,$useragent_commentsblock) ||    
              CheckSubstrs($mobile_token_list,$useragent);    
                
    if ($found_mobile){    
        return true;    
    }else{    
        return false;    
    }    
}  
if (isMobile())  
    echo ´手机访问 DD博客´;  
else
    echo ´电脑访问 DD博客´;  
?>


方法二

function is_mobile_request()  
{  
	$_SERVER[´ALL_HTTP´] = isset($_SERVER[´ALL_HTTP´]) 
		? $_SERVER[´ALL_HTTP´] : ´´;  
	$mobile_browser = ´0´;  
	if(preg_match(´/(up.browser|up.link|mmp|symbian|smartphone|
		midp|wap|phone|iphone|ipad|ipod|android|xoom)/i´,
		strtolower($_SERVER[´HTTP_USER_AGENT´])))  
	$mobile_browser  ;  
	if((isset($_SERVER[´HTTP_ACCEPT´])) and (strpos(strtolower(
		$_SERVER[´HTTP_ACCEPT´]),´application/vnd.wap.xhtml xml´) !== false))  
	$mobile_browser  ;  
	if(isset($_SERVER[´HTTP_X_WAP_PROFILE´]))  
		$mobile_browser  ;  
	if(isset($_SERVER[´HTTP_PROFILE´]))  
		$mobile_browser  ;  
	$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-´
	);  
	if(in_array($mobile_ua, $mobile_agents))  
		$mobile_browser  ;  
	if(strpos(strtolower($_SERVER[´ALL_HTTP´]), ´operamini´) !== false)  
		$mobile_browser  ;  
	// Pre-final check to reset everything if the user is on Windows  
	if(strpos(strtolower($_SERVER[´HTTP_USER_AGENT´]), ´windows´) !== false)  
		$mobile_browser=0;  
	// But WP7 is also Windows, with a slightly different characteristic  
	if(strpos(strtolower($_SERVER[´HTTP_USER_AGENT´]), ´windows phone´) !== false)  
		$mobile_browser  ;  
	if($mobile_browser>0)  
		return true;  
	else
		return false;
}


这两种方法我都亲测过、没有问题的、希望对大家有用