php怎么判断是否手机登录还是pc登录?

发布时间:2020-06-30编辑:脚本学堂
用于检测是否手机登录的一段php代码,根据$_SERVER['HTTP_USER_AGENT']返回的信息,检测登录终端是手机还是pc电脑,需要的朋友参考下。

PHP判断是否手机登录是根据$_SERVER['HTTP_USER_AGENT']判断,它是返回用户访问该页面的代理信息。

例子:
 

复制代码 代码示例:
/**
 * 判断字符串是否包含某一值
*/
function contains($str = '', $search_str)
{
   return strpos($str, $search_str) === FALSE ? FALSE : TRUE;
}
/**
 * 判断是否手机登录
 * www.plcxue.com
 */
function is_mobilephone()
{
$agent = $_SERVER['HTTP_USER_AGENT'];
//$keywords = array("Android", "iPhone", "iPod", "iPad", "Windows Phone", "MQQBrowser");
$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');
$mobile_list = array_merge($mobile_token_list, $mobile_os_list);
//排除Windows
if (!contains($agent, "Windows NT") || (contains($agent, "Windows NT") && contains($agent, "compatible; MSIE"))) {
    //排除Mac
    if (!contains($agent, "Windows NT") && !contains($agent, "Macintosh")) {
    foreach ($mobile_list as $k => $item) {
       if (contains($agent, $item)) {
          return true;
    }
}
 }
}
return false;
}
 

注意:
有些手机并不发送UA信息,这会导致判断错误,几率很小,智能手机用的越来越多了。