您当前的位置: 首页 > 网站编程 > PHP教程 > PHP判断移动设备来源的方法

PHP判断移动设备来源的方法

作者:不详 来源:网络 发布时间: 2014-07-30 09:16 点击:
现在移动设备大热的年代,可能我们在做web前端开发的时候经常会需要用到对移动设备的页面匹配。当然我们可以用响应式页面设计来处理前端的匹配问题,但是响应式页面只是不显示某些代码,但是还是会加载到用户的移动设备中。为了更好的照顾到用户手机浏览的体验,减少不

PHP判断移动设备来源的方法

  现在移动设备大热的年代,可能我们在做web前端开发的时候经常会需要用到对移动设备的页面匹配。当然我们可以用响应式页面设计来处理前端的匹配问题,但是响应式页面只是不显示某些代码,但是还是会加载到用户的移动设备中。为了更好的照顾到用户手机浏览的体验,减少不必要的加载。我们可以再通过PHP的方式来减少用户的代码加载,提高用户浏览页面时的体验。由于现在移动设备的种类繁多、而且浏览器五花八门,所以仅仅是通过User-Agent来判断已经不能完全解决问题了。

  <?php

  function isMobile()

  {

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

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

  {

  return true;

  }

  // 如果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;

  }

  ?>

  目前这个方法可以用于大多数的移动设备判断,使用时也可以根据需要自行添加一些UA的判断参数。
分享到:
本文"PHP判断移动设备来源的方法"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4