php判断是否手机浏览器访问_php判断手机还是电脑
2015-07-12 19:40:25  By: dwtedx

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


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

若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力

想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)

或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教

为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


快速评论


技术评论

  • 该技术还没有评论、赶快抢沙发吧...
DD记账
top
+