当前位置:首页 > PHP教程 > php应用 > 列表

PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】

发布:smiling 来源: PHP粉丝网  添加日期:2021-11-14 12:06:39 浏览: 评论:0 

这篇文章主要介绍了PHP判断访客是否手机端(移动端浏览器)访问的方法,结合实例形式总结分析了php基于HTTP_X_WAP_PROFILE、HTTP_VIA、HTTP_USER_AGENT、HTTP_ACCEPT等4种方法判断访客类型的相关操作技巧,需要的朋友可以参考下。

本文实例总结了PHP判断访客是否手机端(移动端浏览器)访问的方法。分享给大家供大家参考,具体如下:

在平常工作开发中,我们通常需要开发出PC端和移动端两个不同的系统,从而根据访问端的不同进入到不同的操作界面中。这就需要我们首先要对访问的客户端进行判断是PC端还是移动端。

本博文讨论使用PHP判断访问端是否是移动端(或是移动端浏览器)从而确定是移动端访问的4种方法:

1、根据 HTTP_X_WAP_PROFILE是否存在进行判断,存在则是移动端(部分服务商会屏蔽该信息)

  1. /** 
  2. * 是否是移动端访问 
  3. * @desc 判断是否是移动端进行访问 
  4. * @方法一:判断是否有HTTP_X_WAP_PROFILE,有则一定是移动设备。 
  5. * @return bool 
  6. * $Author: Zhihua_W 
  7. */ 
  8. function isMobile1() 
  9.    if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])) { 
  10.      return true; 
  11.    } else { 
  12.      return false; 
  13.    } 

2、根据HTTP_VIA信息进行判断,如果VIA信息含有wap则是移动设备(部分服务商会屏蔽该信息)

  1. /** 
  2.  * 是否是移动端访问 
  3.  * @desc 判断是否是移动端进行访问 
  4.  * @方法二:判断HTTP_VIA信息是否含有wap信息,有则一定是移动设备。 
  5.  * @return bool 
  6.  * $Author: Zhihua_W 
  7.  */ 
  8.  function isMobile2 () 
  9.  { 
  10.    if (isset ($_SERVER['HTTP_VIA'])) { 
  11.      return true; 
  12.    } else { 
  13.      return false; 
  14.    } 
  15.  } 

3、根据手机发送的客户端标志进行判断,此方法比较笨,并且兼容性有待提高

  1. /** 
  2. * 是否是移动端访问 
  3. * @desc 判断是否是移动端进行访问 
  4. * @方法三:判断是否有HTTP_USER_AGENT信息是否是手机发送的客户端标志,有则一定是移动设备。 
  5. * @return bool 
  6. * $Author: Zhihua_W 
  7. */ 
  8. function isMobile3 () 
  9.    if (isset ($_SERVER['HTTP_USER_AGENT'])) { 
  10.     $clientkeywords = array ('nokia''sony','ericsson','mot'
  11.       'samsung','htc','sgh','lg','sharp'
  12.       'sie-','philips','panasonic','alcatel'
  13.       'lenovo','iphone','ipod','blackberry'
  14.       'meizu','android','netfront','symbian'
  15.       'ucweb','windowsce','palm','operamini'
  16.       'operamobi','openwave','nexusone','cldc'
  17.       'midp','wap','mobile' 
  18.       ); 
  19.     // 从HTTP_USER_AGENT中查找手机浏览器的关键字 
  20.     if (preg_match("/(" . implode('|'$clientkeywords) . ")/i"strtolower($_SERVER['HTTP_USER_AGENT']))){ 
  21.       return true; 
  22.     } else { 
  23.       return false; 
  24.     } 
  25.   } else { 
  26.     return false; 
  27.   } 

4、根据协议进行判断,此方法有可能不正确或是判断不出来

  1. /** 
  2. * 是否是移动端访问 
  3. * @desc 判断是否是移动端进行访问 
  4. * @方法四:判断HTTP_ACCEPT信息 
  5. * @return bool 
  6. * $Author: Zhihua_W 
  7. */ 
  8. function isMobile4() 
  9.   if (isset ($_SERVER['HTTP_ACCEPT'])) { 
  10.     // 如果只支持wml并且不支持html那一定是移动设备 
  11.     // 如果支持wml和html但是wml在html之前则是移动设备 
  12.     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')))) { 
  13.     return true; 
  14.     } else { 
  15.     return false; 
  16.     } 
  17.   } else { 
  18.     return false; 
  19.   } 
  20. }

Tags: PHP手机端 PHP移动端浏览器

分享到: