首页 > 语言 > PHP > 正文

php函数实现判断是否移动端访问

2024-09-04 11:42:49
字体:大 中 小
来源:转载
供稿:网友

本文给大家分享的是一则php判断是否移动端访问的函数,是之前收藏的,这里发出来,推荐给小伙伴们。

忘记在哪里获取的函数了,刚才不了心在一个包里面找到,临时保存起来,代码如下:

  1. /** 
  2.  * 是否移动端访问访问 
  3.  * 
  4.  * @return bool 
  5.  */ 
  6. function isMobile() 
  7. { 
  8.     // 如果有HTTP_X_WAP_PROFILE则一定是移动设备 
  9.     if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])) 
  10.     { 
  11.         return true; 
  12.     } 
  13.     // 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息 
  14.     if (isset ($_SERVER['HTTP_VIA'])) 
  15.     { 
  16.         // 找不到为flase,否则为true 
  17.         return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false; 
  18.     } 
  19.     // 脑残法,判断手机发送的客户端标志,兼容性有待提高 
  20.     if (isset ($_SERVER['HTTP_USER_AGENT'])) 
  21.     { 
  22.         $clientkeywords = array ('nokia', 
  23.             'sony', 
  24.             'ericsson', 
  25.             'mot', 
  26.             'samsung', 
  27.             'htc', 
  28.             'sgh', 
  29.             'lg', 
  30.             'sharp', 
  31.             'sie-', 
  32.             'philips', 
  33.             'panasonic', 
  34.             'alcatel', 
  35.             'lenovo', 
  36.             'iphone', 
  37.             'ipod', 
  38.             'blackberry', 
  39.             'meizu', 
  40.             'android', 
  41.             'netfront', 
  42.             'symbian', 
  43.             'ucweb', 
  44.             'windowsce', 
  45.             'palm', 
  46.             'operamini', 
  47.             'operamobi', 
  48.             'openwave', 
  49.             'nexusone', 
  50.             'cldc', 
  51.             'midp', 
  52.             'wap', 
  53.             'mobile' 
  54.             ); 
  55.         // 从HTTP_USER_AGENT中查找手机浏览器的关键字 
  56.         if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT']))) 
  57.         { 
  58.             return true; 
  59.         } 
  60.     } 
  61.     // 协议法,因为有可能不准确,放到最后判断 
  62.     if (isset ($_SERVER['HTTP_ACCEPT'])) 
  63.     { 
  64.         // 如果只支持wml并且不支持html那一定是移动设备 
  65.         // 如果支持wml和html但是wml在html之前则是移动设备 
  66.         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')))) 
  67.         { 
  68.             return true; 
  69.         } 
  70.     } 
  71.     return false; 
  72. } 

非常简单实用的函数,分享给大家,希望大家能够喜欢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表