当前位置:首页 > 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. { 
  10.    if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])) { 
  11.      return true; 
  12.    } else { 
  13.      return false; 
  14.    } 
  15. } 

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. { 
  10.    if (isset ($_SERVER['HTTP_USER_AGENT'])) { 
  11.     $clientkeywords = array ('nokia', 'sony','ericsson','mot', 
  12.       'samsung','htc','sgh','lg','sharp', 
  13.       'sie-','philips','panasonic','alcatel', 
  14.       'lenovo','iphone','ipod','blackberry', 
  15.       'meizu','android','netfront','symbian', 
  16.       'ucweb','windowsce','palm','operamini', 
  17.       'operamobi','openwave','nexusone','cldc', 
  18.       'midp','wap','mobile' 
  19.       ); 
  20.     // 从HTTP_USER_AGENT中查找手机浏览器的关键字 
  21.     if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT']))){ 
  22.       return true; 
  23.     } else { 
  24.       return false; 
  25.     } 
  26.   } else { 
  27.     return false; 
  28.   } 
  29. } 

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

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

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

分享到: