很多时候也可以通过逻辑程序来进行判断,如PHP、JS是常用的两种识别访问设备类型的常用方法。

原理都是采用识别访问客户端的HTTP_USER_AGENT,然后进行关键字匹配进行确定设备类型,对于伪造HTTP头的就区分不出来了。

区分设备类型然后要做的就是能够针对不同设置显示出易于阅读的网页,具体可以研究响应式布局技术。

本文主要介绍如何通过php或js来识别终端类型。

<?php
class IsMobile {public static function isMobile(){$useragent=isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';$useragent_commentsblock=preg_match('|\(.*?\)|',$useragent,$matches)>0?$matches[0]:'';$mobile_os_list = array('Google Wireless Transcoder','Windows CE','WindowsCE','Symbian','Android','armv6l','armv5','Mobile','CentOS','mowser','AvantGo','Opera Mobi','J2ME/MIDP','Smartphone','Go.Web','Palm','iPAQ');$mobile_token_list = array('Profile/MIDP','Configuration/CLDC-','160×160','176×220','240×240','240×320','320×240','UP.Browser','UP.Link','SymbianOS','PalmOS','PocketPC','SonyEricsson','Nokia','BlackBerry','Vodafone','BenQ','Novarra-Vision','Iris','NetFront','HTC_','Xda_','SAMSUNG-SGH','Wapaka','DoCoMo','iPhone','iPod');$found_mobile = self::CheckSubstrs($mobile_os_list, $useragent_commentsblock) ||self::CheckSubstrs($mobile_token_list,$useragent);if ($found_mobile){return true;}else{return false;}}public static function CheckSubstrs($substrs,$text){foreach($substrs as $substr)if(false!==strpos($text,$substr)){return true;}return false;}
}/*test code
if (IsMobile::isMobile())echo '手机登录www.nginx.cn';
elseecho '电脑登录www.nginx.cn';
*/
?>

function isPhone() {// 如果有HTTP_X_WAP_PROFILE则一定是移动设备if (isset($_SERVER['HTTP_X_WAP_PROFILE'])) {return true;}//如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息if (isset($_SERVER['HTTP_VIA'])) {//找不到为flase,否则为trueif(stristr($_SERVER['HTTP_VIA'], "wap")){return true;}}//脑残法,判断手机发送的客户端标志,兼容性有待提高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','phone',);// 从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;
}
js区分手机或PC访问源码方法一<!--切换手机版网站--->
<script src="http://siteapp.baidu.com/static/webappservice/uaredirect.js" type="text/javascript"></script>
<script type="text/javascript">uaredirect("http://www.nginx.cn/");</script>
方法二<script type="text/javascript"><!-- //平台、设备和操作系统var system ={win : false,mac : false,xll : false};//检测平台var p = navigator.platform;system.win = p.indexOf("Win") == 0;system.mac = p.indexOf("Mac") == 0;system.x11 = (p == "X11") || (p.indexOf("Linux") == 0);//跳转语句,如果是手机访问就自动跳转到wap.baidu.com页面if(system.win||system.mac||system.xll){window.location.href="http://www.kdw.cc";}else{window.location.href="http://m.kdw.cc";}-->
</script>

php或js判断网站访问者来自手机或者pc端源码相关推荐

  1. js判断运行环境是手机还是 PC

    js判断运行环境是手机还是 PC function IsPC() {var userAgentInfo = navigator.userAgent; // 包含有关浏览器的信息// 非手机端var A ...

  2. 计算机毕业设计JavaVue.js网上书城管理系统设计与实现服务端(源码+系统+mysql数据库+lw文档)

    计算机毕业设计JavaVue.js网上书城管理系统设计与实现服务端(源码+系统+mysql数据库+lw文档) 计算机毕业设计JavaVue.js网上书城管理系统设计与实现服务端(源码+系统+mysql ...

  3. 判断http请求来自手机还是pc

    /*  * 判断请求来自手机还是pc  */ package com.up.cttf.utils; import javax.servlet.http.HttpServletRequest; publ ...

  4. JS判断设备是手机端还是PC端,并加载不同的css/js文件

    最近公司有个页面需要做pc端和手机端的页面自适应,即手机打开是指定的样式,pc打开则是pc指定的样式,样式是前端ui已经设计好了的. 所以这里需要通过Navigator userAgent 属性判断浏 ...

  5. Node.js毕业设计——基于Node.js+JavaScript+MongoDB的供求信息网站设计与实现(毕业论文+程序源码)——供求信息网站

    基于Node.js+JavaScript+MongoDB的供求信息网站设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于Node.js+JavaScript+MongoDB的供求信息网站设计 ...

  6. HTML5响应式手机模板:电商网站设计——仿淘宝手机app界面模板源码 HTML+CSS+JavaScript...

    HTML5响应式手机模板:电商网站设计--仿淘宝手机app界面模板源码 HTML+CSS+JavaScript 手机电商模板 手机网站模板 企业手机网站模板 手机网站模板 手机模板 响应式手机网站 h ...

  7. HTML5响应式手机模板:电商网站设计——仿淘宝手机app界面模板源码 HTML+CSS+JavaScript

    HTML5响应式手机模板:电商网站设计--仿淘宝手机app界面模板源码 HTML+CSS+JavaScript 手机电商模板 手机网站模板 企业手机网站模板 手机网站模板 手机模板 响应式手机网站 h ...

  8. 判断客户端是否是手机或者PC

    /// <summary> /// 判断客户端是否是手机或者PC /// </summary> /// <returns></returns> publ ...

  9. asp毕业设计——基于asp+access的中学网站设计与实现(毕业论文+程序源码)——中学网站

    基于asp+access的中学网站设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的中学网站设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦. 文章目录: 基于 ...

最新文章

  1. EasyNVR摄像机网页直播中,推流组件EasyRTMP推送RTMP扩展支持HEVC(H.265)的方案
  2. android 入门-引用库项目
  3. mysql dif_mysqldiff实现MySQL数据表比较
  4. 如何使用git管理crontab任务
  5. 基于英特尔® 优化分析包(OAP)的 Spark 性能优化方案
  6. 【Java】JDBC连接MySQL/SQLServer/Oracle三种数据库
  7. 程序员找工作时,大公司 VS 小公司,应该如何做出正确的选择?
  8. linux mysql添加用户名并实现远程访问
  9. 职场,最需要的是主动
  10. Atitit 变量类型系统 目录 1. 通用类型系统 (Common Type System) 1 1.1. CTS 的类型[编辑] 1 2. CLR支持两种基本类型:值类型和引用类型。因此,还是把
  11. python全栈自动化测试工程师第11期柠檬班vip_因为Python,班主任最近都开始化妆了!...
  12. cJSON库的使用(一)
  13. 【LOJ3124】「CTS2019」氪金手游
  14. 计算机语言与硬件相关,搞懂程序语言与计算机硬件的关系
  15. MeiShe Face Sticker Design Plugin AR Scene Editor Instruction
  16. Android Studio项目中常见的需要自行创建的资源文件夹的位置(assets、raw、menu、anim等)
  17. 给你说个笑话:我是做互联网的
  18. linux查看达梦数据库信息,DM8 达梦数据库 查看数据库版本号 方法
  19. 网管必备软件DameWare
  20. ITIL变更管理流程的设计

热门文章

  1. [一] java8 函数式编程入门 什么是函数式编程 函数接口概念 流和收集器基本概念...
  2. docker 创建启用systemd服务的容器
  3. 基于JDK 1.8 的 Java 容器UML图
  4. angular.animation的使用
  5. jQuery获取和设置元素
  6. 软件工程项目组Z.XML会议记录 2013/09/18
  7. ⒈Altiris cms 7.0 安装前准备工作
  8. LLDB+Python脚本:增强LLDB调试
  9. swaggerui api.docs
  10. Java Web知识梳理