怎么用php判断用户的访问是否是来自移动端

 我来答
九月枫燃
2018-11-16 · TA获得超过109个赞
知道答主
回答量:220
采纳率:45%
帮助的人:30万
展开全部
  • function isMobile()

  • // 如果有HTTP_X_WAP_PROFILE则一定是移动设备

  • if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))

  • {

  • return true;

  • // 如果HTTP_VIA含有wap则一定是移动设备,部分服务商会屏蔽该信息

  • if (isset ($_SERVER['HTTP_VIA']))

  • // 找不到为flase,否则为true

  • return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;

  • // 判断手机发送的客户端标志

  • if (isset ($_SERVER['HTTP_USER_AGENT']))

  • {

  • $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'

  • ); 

  • // 从HTTP_USER_AGENT中查找手机浏览器的关键字

  • if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT'])))

  • {

  • return true;

  • // 协议法,因为有可能不准确,放到最后判断

  • if (isset ($_SERVER['HTTP_ACCEPT']))

  • // 如果只支持wml并且不支持html那一定是移动设备

  • // 如果支持wml和html但是wml在html之前则是移动设备

  • 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'))))

  • {

  • return true;

  • return false;

复制粘贴

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式