颠覆霸主

 找回密码
 立即注册

QQ登录

只需一步,快速开始

PHP判断是否移动端浏览器及检查来源微信浏览器代码

  [复制链接] [添加相关主题]
godkings 发表于 2021-10-13 10:08:49 | 显示全部楼层 |阅读模式
使用PHP代码来判断客户端是移动端还是PC端,实现移动和PC访问不同的内容,这样能更好的解决页面隐藏太多无用的内容。
判断是否移动端方法1
  1. function isMobile() {
  2.   // 如果有HTTP_X_WAP_PROFILE则一定是移动设备
  3.   if (isset($_SERVER['HTTP_X_WAP_PROFILE'])) {
  4.     return true;
  5.   }
  6.   // 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
  7.   if (isset($_SERVER['HTTP_VIA'])) {
  8.     // 找不到为flase,否则为true
  9.     return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;
  10.   }
  11.   // 脑残法,判断手机发送的客户端标志,兼容性有待提高。其中'MicroMessenger'是电脑微信
  12.   if (isset($_SERVER['HTTP_USER_AGENT'])) {
  13.     $clientkeywords = array('nokia','sony','ericsson','mot','samsung','htc','sgh','lg','sharp','sie-','philips','panasonic','alcatel','lenovo','iphone','ipod','blackberry','meizu','android','netfront','symbian','ucweb','windowsce','palm','operamini','operamobi','openwave','nexusone','cldc','midp','wap','mobile','MicroMessenger');
  14.     // 从HTTP_USER_AGENT中查找手机浏览器的关键字
  15.     if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT']))) {
  16.       return true;
  17.     }
  18.   }
  19.   // 协议法,因为有可能不准确,放到最后判断
  20.   if (isset ($_SERVER['HTTP_ACCEPT'])) {
  21.     // 如果只支持wml并且不支持html那一定是移动设备
  22.     // 如果支持wml和html但是wml在html之前则是移动设备
  23.     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')))) {
  24.       return true;
  25.     }
  26.   }
  27.   return false;
  28. }
复制代码



方法2
  1. /**
  2.   * 移动端判断
  3.   */

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



判断是否是微信浏览器:
  1. function isWeixin() {
  2.   if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false) {
  3.     return true;
  4.   } else {
  5.     return false;
  6.   }
  7. }
复制代码




上一篇:js+PHP判断是手机端还是PC端,判断是否是微信浏览器
下一篇:css选择前三个、第一个最后一个,第几个等
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ| Archiver|小黑屋| 颠覆霸主 ( 京ICP备12023415号-2 )

声明:本站的任何信息和内容仅代表作者的立场和观点,与颠覆霸主网无关。

禁止在颠覆霸主网发布任何与《中华人民共和国法律》相抵触的言论!

GMT+8, 2022-8-18 19:41 , Processed in 0.099570 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.