为了更好的用户体验,本主题默认支持wap和web两种访问样式,wap访问将不包含任何脚本、样式也是重新撰写,不支持更多页面,只支持首页、详情页, 评论框、登录等内容将陆续更新到wap内容里。如果想测试,您可以使用手机访问http://qianduanblog.com试试看,是不是效果和电脑 访问不一样?

下面贴出获得访问类型的函数(来源于互联网):

经测试,下面判断是错误的。

  1. /***************************************************
  2. ** 返回访问的类型(wap web)
  3. ** 2012年12月2日22:21:20
  4. ***************************************************/
  5. function yundanran_get_access_type()
  6. {
  7. $is_wap=false;
  8. // 如果有HTTP_X_WAP_PROFILE则一定是移动设备
  9. if (isset($_SERVER['HTTP_X_WAP_PROFILE']))
  10. {
  11. $is_wap=true;
  12. }
  13. else
  14. {
  15. // 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
  16. if(isset($_SERVER['HTTP_VIA']))
  17. {
  18. // 找不到为flase,否则为true
  19. $is_wap=stristr($_SERVER['HTTP_VIA'],"wap") ? true : false;
  20. }
  21. else
  22. {
  23. // 协议法,因为有可能不准确,放到最后判断
  24. if (isset($_SERVER['HTTP_ACCEPT']))
  25. {
  26. // 如果只支持wml并且不支持html那一定是移动设备
  27. // 如果支持wml和html但是wml在html之前则是移动设备
  28. if
  29. (
  30. (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false)
  31. && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false
  32. ¦¦ (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html')))
  33. )
  34. {
  35. $is_wap=true;
  36. }
  37. }
  38. }
  39. }
  40. return $is_wap?'wap':'web';
  41. }
  42. 正确的判断方法,将会近期写出:

    ╮(╯▽╰)╭,笨方法,用UA判断,源自大前端:

    1. /***************************************************
    2. ** 返回访问的类型(wap web)
    3. ** 2012年12月2日22:21:20
    4. ** 2012年12月3日22:30:00
    5. ***************************************************/
    6. function yundanran_get_access_type()
    7. {
    8. $is_wap=false;
    9. $user_agent = $_SERVER['HTTP_USER_AGENT'];
    10. $mobile_agents = Array
    11. (
    12. "240x320","acer","acoon","acs-","abacho","ahong","airness",
    13. "alcatel","amoi","android","anywhereyougo.com","applewebkit/525",
    14. "applewebkit/532","asus","audio","au-mic","avantogo",
    15. "becker","benq","bilbo","bird","blackberry","blazer","bleu",
    16. "cdm-","compal","coolpad","danger","dbtel","dopod","elaine",
    17. "eric","etouch","fly ","fly_","fly-","go.web","goodaccess",
    18. "gradiente","grundig","haier","hedy","hitachi","htc",
    19. "huawei","hutchison","inno","ipad","ipaq","ipod","jbrowser",
    20. "kddi","kgt","kwc","lenovo","lg ","lg2","lg3","lg4","lg5",
    21. "lg7","lg8","lg9","lg-","lge-","lge9","longcos","maemo",
    22. "mercator","meridian","micromax","midp","mini","mitsu",
    23. "mmm","mmp","mobi","mot-","moto","nec-","netfront","newgen",
    24. "nexian","nf-browser","nintendo","nitro","nokia","nook",
    25. "novarra","obigo","palm","panasonic","pantech","philips",
    26. "phone","pg-","playstation","pocket","pt-","qc-","qtek",
    27. "rover","sagem","sama","samu","sanyo","samsung","sch-",
    28. "scooter","sec-","sendo","sgh-","sharp","siemens","sie-",
    29. "softbank","sony","spice","sprint","spv","symbian","tablet",
    30. "talkabout","tcl-","teleca","telit","tianyu","tim-","toshiba",
    31. "tsm","up.browser","utec","utstar","verykool","virgin","vk-",
    32. "voda","voxtel","vx","wap","wellco","wig browser","wii",
    33. "windows ce","wireless","xda","xde","zte"
    34. );
    35. $is_wap = false;
    36. foreach ($mobile_agents as $device)
    37. {
    38. if (stristr($user_agent, $device))
    39. {
    40. $is_wap = true;
    41. break;
    42. }
    43. }
    44. return $is_wap?'wap':'web';
    45. }
    46. 转载自 http://qianduanblog.com/post/php-get-access-source.html

php获得访问来源(手机wap访问、电脑web访问)的更多相关文章

  1. 安装apache服务器时遇到只能本地访问,局域网内其他电脑不能访问apache:

    安装apache服务器时遇到只能本地访问,局域网内其他电脑不能访问apache:1.查看selinux运行状态及关闭selinux/usr/sbin/sestatus -v文本模式关闭selinux: ...

  2. php如何判断电脑访问还是手机访问?

    手机上网用户数量越来越大,如今各网站都推出了手机网站,电脑用户访问时直接访问电脑版网页,当用户通过手机访问网站时则跳自动跳转到手机版网页,下面给大家分享一段php中判断电脑访问还是手机访问的代码: & ...

  3. 部署 Windows PowerShell Web 访问

    部署 Windows PowerShell Web 访问 适用对象:Windows Server 2012, Windows Server 2012 R2 Windows PowerShell® We ...

  4. 解决电脑访问Discuz!手机版(支持触屏版)

    discuz电脑访问手机版的方法现在需要来修改一下2个文件,即可用电脑浏览discuz的手机版本:找到./source/function/function_core.php 文件,查找 : funct ...

  5. 使用UAParser在C#MVC项目中如何判断用户是在用什么设备进行访问(手机,平板还是普通的电脑)

    现在我们开发的很多web应用都要支持手机等移动设备.为了让手机用户能有更加好的用户体验,我们经常为手机设备专门准备一套前端的页面.这样当用户使用普通电脑来访问的时候,我们的应用就向用户展示普通电脑的页 ...

  6. php怎么判断网页是电脑访问还是手机访问

    .第一种方法 <?php  function check_wap() {       ) {           ;$i<count($list);$i++){         ){    ...

  7. PHP判断设备访问来源

    /** * 判断用户请求设备是否是移动设备 * @return bool */ function isMobile() { //如果有HTTP_X_WAP_PROFILE则一定是移动设备 if (is ...

  8. WampServer 2.5设置外网访问/局域网手机访问(403 Forbidden错误解决方法)

    安装好wamp后,想用手机通过局域访问电脑上wamp下的网页,结果出现如下提示. (403 Forbidden)错误 1.打开http.conf文件 2.找到下图中红色方框中的onlineofflin ...

  9. Linux(CentOS)系统下安装好apache(httpd)服务后,其他电脑无法访问的原因

    原文:Linux(CentOS)系统下安装好apache(httpd)服务后,其他电脑无法访问的原因 今天试了下在虚拟机上利用CentOS系统的yum命令安装好了httpd(apache2.4.6), ...

随机推荐

  1. 40个Android问题

    1. Android的四大组件是哪些,它们的作用? 答:Activity:Activity是Android程序与用户交互的窗口,是Android构造块中最基本的一种,它需要为保持各界面的状态,做很多持 ...

  2. 在ios7真机上和iOS6模拟器上运行是好的,而在iOS6真机上运行却报错

    在ios7真机上和iOS6模拟器上运行是好的,而在iOS6真机上运行却报错 解决方法: 或是都设置为yes.. Build Active Architecture Only的意思是只生成适应的指令集

  3. ViewController 的loadView、viewDidLoad、viewDidUnload分别是什么时候调用的,在自定义ViewCointroller时在这几个函数中应该做什么工作?

    由init.loadView.viewDidLoad.viewDidUnload.dealloc的关系说起 init方法 在init方法中实例化必要的对象(遵从LazyLoad思想) init方法中初 ...

  4. German Collegiate Programming Contest 2013:B

    一个离散化的简单题: 我用的是STL来做的离散化: 好久没写离散化了,纪念一下! 代码: #include<cstdio> #include<cstring> #include ...

  5. MIST

    获取当前状态机 modelObj.states[modelObj.curStatus.stateId] "FH_Search" modelObj.states[modelObj.p ...

  6. Delphi 在任务栏隐藏程序图标

    Delphi 在任务栏隐藏程序图标 方法一:1.修改工程文件中的“Application.MainFormOnTaskbar := True;”为“Application.MainFormOnTask ...

  7. HTTP, W3SVC, WAS 和 W3WP

    IIS 请求主要模块        当客户端向 IIS 发出 HTTP 请求时,会有很多事情发生. 有许多内核模式和本机模式组件,用于将请求路由到最终响应请求的 W3WP 进程.       响应一个 ...

  8. R语言 系统聚类分析1

    #聚类分析是一类将数据所研究对象进行分类的统计方法,这一类方法的共同特点是:#事先不知道类别的个数与结构 据以进行分类的数据是对象之间的相似性 或差异性数据#将这些相似(相异)性数据看成是对象之间的距 ...

  9. bzoj2729

    一看就知道是数学题,考虑插空法由于老师只有两人,所以先对老师进行插空这里考虑两种情况:1.两个老师站在同一处,即两个男生之间站了两个老师这时候需要一个女生站在两个老师之间,再对女生插空,根据乘法原理即 ...

  10. Render To Texel Baker

    今天仔细研究了 Shaowgun 示例中那个金黄色雕像所使用的光照纹理烘焙工具:“Render To Texel Baker”.因为要在移动设备展现比较逼真的光照效果,但是实时使用法线贴图并大量用于场 ...