分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

转载:http://blog.csdn.net/pleasecallmewhy/article/details/9981453

Mobile_Detect 是一个轻量级的开源移动设备(手机)检测的 PHP Class,

它使用 User-Agent 中的字符串,并结合 HTTP Header,来检测移动设备环境。

这个设备检测的 PHP 类库最强大的地方是,它有一个非常完整的库,

可以检测出所用的设备类型(包括操作类型,以及手机品牌等都能检测)和浏览器的详细信息。

官方主页:http://mobiledetect.net/
demo:http://demo.mobiledetect.net/

完整的Mobile_Detect代码如下:

[php] view plaincopy
  1. <?php
  2. /**
  3. * MIT License
  4. * ===========
  5. *
  6. * Permission is hereby granted, free of charge, to any person obtaining
  7. * a copy of this software and associated documentation files (the
  8. * "Software"), to deal in the Software without restriction, including
  9. * without limitation the rights to use, copy, modify, merge, publish,
  10. * distribute, sublicense, and/or sell copies of the Software, and to
  11. * permit persons to whom the Software is furnished to do so, subject to
  12. * the following conditions:
  13. *
  14. * The above copyright notice and this permission notice shall be included
  15. * in all copies or substantial portions of the Software.
  16. *
  17. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  18. * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  19. * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  20. * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
  21. * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  22. * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
  23. * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  24. *
  25. *
  26. * @author      Serban Ghita <serbanghita@gmail.com>
  27. *              Victor Stanciu <vic.stanciu@gmail.com> (until v. 1.0)
  28. * @license     MIT License https://github.com/serbanghita/Mobile-Detect/blob/master/LICENSE.txt
  29. * @link        Official page: http://mobiledetect.net
  30. *              GitHub Repository: https://github.com/serbanghita/Mobile-Detect
  31. *              Google Code Old Page: http://code.google.com/p/php-mobile-detect/
  32. * @version     2.6.6
  33. */
  34. class Mobile_Detect
  35. {
  36. /**
  37. * Mobile detection type.
  38. */
  39. const DETECTION_TYPE_MOBILE     = 'mobile';
  40. /**
  41. * Extended detection type.
  42. */
  43. const DETECTION_TYPE_EXTENDED   = 'extended';
  44. /**
  45. * A frequently used regular expression to extract version #s.
  46. */
  47. const VER                       = '([\w._\+]+)';
  48. /**
  49. * Top-level device.
  50. */
  51. const MOBILE_GRADE_A            = 'A';
  52. /**
  53. * Mid-level device.
  54. */
  55. const MOBILE_GRADE_B            = 'B';
  56. /**
  57. * Low-level device.
  58. */
  59. const MOBILE_GRADE_C            = 'C';
  60. /**
  61. * Stores the version number of the current release.
  62. * @var array
  63. */
  64. protected $scriptVersion = '2.6.6';
  65. /**
  66. * The User-Agent HTTP header is stored in here.
  67. * @var string
  68. */
  69. protected $userAgent = null;
  70. /**
  71. * HTTP headers in the PHP-flavor. So HTTP_USER_AGENT and SERVER_SOFTWARE.
  72. * @var array
  73. */
  74. protected $httpHeaders = array();
  75. /**
  76. * All the rules combined.
  77. * @var array
  78. */
  79. protected $mobileDetectionRules = null;
  80. /**
  81. * The rules, but extended.
  82. * @var array
  83. */
  84. protected $mobileDetectionRulesExtended = null;
  85. /**
  86. * The detection type, using self::DETECTION_TYPE_MOBILE or self::DETECTION_TYPE_EXTENDED.
  87. *
  88. * @var string
  89. */
  90. protected $detectionType = self::DETECTION_TYPE_MOBILE;
  91. /**
  92. * List of mobile devices (phones).
  93. *
  94. * @var array
  95. */
  96. protected $phoneDevices = array(
  97. 'iPhone'        => '\biPhone.*Mobile|\biPod', // |\biTunes
  98. 'BlackBerry'    => 'BlackBerry|\bBB10\b|rim[0-9]+',
  99. 'HTC'           => 'HTC|HTC.*(Sensation|Evo|Vision|Explorer|6800|8100|8900|A7272|S510e|C110e|Legend|Desire|T8282)|APX515CKT|Qtek9090|APA9292KT|HD_mini|Sensation.*Z710e|PG86100|Z715e|Desire.*(A8181|HD)|ADR6200|ADR6400L|ADR6425|001HT|Inspire 4G|Android.*\bEVO\b',
  100. 'Nexus'         => 'Nexus One|Nexus S|Galaxy.*Nexus|Android.*Nexus.*Mobile',
  101. // @todo: Is 'Dell Streak' a tablet or a phone? ;)
  102. 'Dell'          => 'Dell.*Streak|Dell.*Aero|Dell.*Venue|DELL.*Venue Pro|Dell Flash|Dell Smoke|Dell Mini 3iX|XCD28|XCD35|\b001DL\b|\b101DL\b|\bGS01\b',
  103. 'Motorola'      => 'Motorola|\bDroid\b.*Build|DROIDX|Android.*Xoom|HRI39|MOT-|A1260|A1680|A555|A853|A855|A953|A955|A956|Motorola.*ELECTRIFY|Motorola.*i1|i867|i940|MB200|MB300|MB501|MB502|MB508|MB511|MB520|MB525|MB526|MB611|MB612|MB632|MB810|MB855|MB860|MB861|MB865|MB870|ME501|ME502|ME511|ME525|ME600|ME632|ME722|ME811|ME860|ME863|ME865|MT620|MT710|MT716|MT720|MT810|MT870|MT917|Motorola.*TITANIUM|WX435|WX445|XT300|XT301|XT311|XT316|XT317|XT319|XT320|XT390|XT502|XT530|XT531|XT532|XT535|XT603|XT610|XT611|XT615|XT681|XT701|XT702|XT711|XT720|XT800|XT806|XT860|XT862|XT875|XT882|XT883|XT894|XT909|XT910|XT912|XT928',
  104. 'Samsung'       => 'Samsung|SGH-I337|BGT-S5230|GT-B2100|GT-B2700|GT-B2710|GT-B3210|GT-B3310|GT-B3410|GT-B3730|GT-B3740|GT-B5510|GT-B5512|GT-B5722|GT-B6520|GT-B7300|GT-B7320|GT-B7330|GT-B7350|GT-B7510|GT-B7722|GT-B7800|GT-C3010|GT-C3011|GT-C3060|GT-C3200|GT-C3212|GT-C3212I|GT-C3262|GT-C3222|GT-C3300|GT-C3300K|GT-C3303|GT-C3303K|GT-C3310|GT-C3322|GT-C3330|GT-C3350|GT-C3500|GT-C3510|GT-C3530|GT-C3630|GT-C3780|GT-C5010|GT-C5212|GT-C6620|GT-C6625|GT-C6712|GT-E1050|GT-E1070|GT-E1075|GT-E1080|GT-E1081|GT-E1085|GT-E1087|GT-E1100|GT-E1107|GT-E1110|GT-E1120|GT-E1125|GT-E1130|GT-E1160|GT-E1170|GT-E1175|GT-E1180|GT-E1182|GT-E1200|GT-E1210|GT-E1225|GT-E1230|GT-E1390|GT-E2100|GT-E2120|GT-E2121|GT-E2152|GT-E2220|GT-E2222|GT-E2230|GT-E2232|GT-E2250|GT-E2370|GT-E2550|GT-E2652|GT-E3210|GT-E3213|GT-I5500|GT-I5503|GT-I5700|GT-I5800|GT-I5801|GT-I6410|GT-I6420|GT-I7110|GT-I7410|GT-I7500|GT-I8000|GT-I8150|GT-I8160|GT-I8190|GT-I8320|GT-I8330|GT-I8350|GT-I8530|GT-I8700|GT-I8703|GT-I8910|GT-I9000|GT-I9001|GT-I9003|GT-I9010|GT-I9020|GT-I9023|GT-I9070|GT-I9100|GT-I9103|GT-I9220|GT-I9250|GT-I9300|GT-I9305|GT-I9500|GT-I9505|GT-M3510|GT-M5650|GT-M7500|GT-M7600|GT-M7603|GT-M8800|GT-M8910|GT-N7000|GT-S3110|GT-S3310|GT-S3350|GT-S3353|GT-S3370|GT-S3650|GT-S3653|GT-S3770|GT-S3850|GT-S5210|GT-S5220|GT-S5229|GT-S5230|GT-S5233|GT-S5250|GT-S5253|GT-S5260|GT-S5263|GT-S5270|GT-S5300|GT-S5330|GT-S5350|GT-S5360|GT-S5363|GT-S5369|GT-S5380|GT-S5380D|GT-S5560|GT-S5570|GT-S5600|GT-S5603|GT-S5610|GT-S5620|GT-S5660|GT-S5670|GT-S5690|GT-S5750|GT-S5780|GT-S5830|GT-S5839|GT-S6102|GT-S6500|GT-S7070|GT-S7200|GT-S7220|GT-S7230|GT-S7233|GT-S7250|GT-S7500|GT-S7530|GT-S7550|GT-S7562|GT-S8000|GT-S8003|GT-S8500|GT-S8530|GT-S8600|SCH-A310|SCH-A530|SCH-A570|SCH-A610|SCH-A630|SCH-A650|SCH-A790|SCH-A795|SCH-A850|SCH-A870|SCH-A890|SCH-A930|SCH-A950|SCH-A970|SCH-A990|SCH-I100|SCH-I110|SCH-I400|SCH-I405|SCH-I500|SCH-I510|SCH-I515|SCH-I600|SCH-I730|SCH-I760|SCH-I770|SCH-I830|SCH-I910|SCH-I920|SCH-LC11|SCH-N150|SCH-N300|SCH-R100|SCH-R300|SCH-R351|SCH-R400|SCH-R410|SCH-T300|SCH-U310|SCH-U320|SCH-U350|SCH-U360|SCH-U365|SCH-U370|SCH-U380|SCH-U410|SCH-U430|SCH-U450|SCH-U460|SCH-U470|SCH-U490|SCH-U540|SCH-U550|SCH-U620|SCH-U640|SCH-U650|SCH-U660|SCH-U700|SCH-U740|SCH-U750|SCH-U810|SCH-U820|SCH-U900|SCH-U940|SCH-U960|SCS-26UC|SGH-A107|SGH-A117|SGH-A127|SGH-A137|SGH-A157|SGH-A167|SGH-A177|SGH-A187|SGH-A197|SGH-A227|SGH-A237|SGH-A257|SGH-A437|SGH-A517|SGH-A597|SGH-A637|SGH-A657|SGH-A667|SGH-A687|SGH-A697|SGH-A707|SGH-A717|SGH-A727|SGH-A737|SGH-A747|SGH-A767|SGH-A777|SGH-A797|SGH-A817|SGH-A827|SGH-A837|SGH-A847|SGH-A867|SGH-A877|SGH-A887|SGH-A897|SGH-A927|SGH-B100|SGH-B130|SGH-B200|SGH-B220|SGH-C100|SGH-C110|SGH-C120|SGH-C130|SGH-C140|SGH-C160|SGH-C170|SGH-C180|SGH-C200|SGH-C207|SGH-C210|SGH-C225|SGH-C230|SGH-C417|SGH-C450|SGH-D307|SGH-D347|SGH-D357|SGH-D407|SGH-D415|SGH-D780|SGH-D807|SGH-D980|SGH-E105|SGH-E200|SGH-E315|SGH-E316|SGH-E317|SGH-E335|SGH-E590|SGH-E635|SGH-E715|SGH-E890|SGH-F300|SGH-F480|SGH-I200|SGH-I300|SGH-I320|SGH-I550|SGH-I577|SGH-I600|SGH-I607|SGH-I617|SGH-I627|SGH-I637|SGH-I677|SGH-I700|SGH-I717|SGH-I727|SGH-i747M|SGH-I777|SGH-I780|SGH-I827|SGH-I847|SGH-I857|SGH-I896|SGH-I897|SGH-I900|SGH-I907|SGH-I917|SGH-I927|SGH-I937|SGH-I997|SGH-J150|SGH-J200|SGH-L170|SGH-L700|SGH-M110|SGH-M150|SGH-M200|SGH-N105|SGH-N500|SGH-N600|SGH-N620|SGH-N625|SGH-N700|SGH-N710|SGH-P107|SGH-P207|SGH-P300|SGH-P310|SGH-P520|SGH-P735|SGH-P777|SGH-Q105|SGH-R210|SGH-R220|SGH-R225|SGH-S105|SGH-S307|SGH-T109|SGH-T119|SGH-T139|SGH-T209|SGH-T219|SGH-T229|SGH-T239|SGH-T249|SGH-T259|SGH-T309|SGH-T319|SGH-T329|SGH-T339|SGH-T349|SGH-T359|SGH-T369|SGH-T379|SGH-T409|SGH-T429|SGH-T439|SGH-T459|SGH-T469|SGH-T479|SGH-T499|SGH-T509|SGH-T519|SGH-T539|SGH-T559|SGH-T589|SGH-T609|SGH-T619|SGH-T629|SGH-T639|SGH-T659|SGH-T669|SGH-T679|SGH-T709|SGH-T719|SGH-T729|SGH-T739|SGH-T746|SGH-T749|SGH-T759|SGH-T769|SGH-T809|SGH-T819|SGH-T839|SGH-T919|SGH-T929|SGH-T939|SGH-T959|SGH-T989|SGH-U100|SGH-U200|SGH-U800|SGH-V205|SGH-V206|SGH-X100|SGH-X105|SGH-X120|SGH-X140|SGH-X426|SGH-X427|SGH-X475|SGH-X495|SGH-X497|SGH-X507|SGH-X600|SGH-X610|SGH-X620|SGH-X630|SGH-X700|SGH-X820|SGH-X890|SGH-Z130|SGH-Z150|SGH-Z170|SGH-ZX10|SGH-ZX20|SHW-M110|SPH-A120|SPH-A400|SPH-A420|SPH-A460|SPH-A500|SPH-A560|SPH-A600|SPH-A620|SPH-A660|SPH-A700|SPH-A740|SPH-A760|SPH-A790|SPH-A800|SPH-A820|SPH-A840|SPH-A880|SPH-A900|SPH-A940|SPH-A960|SPH-D600|SPH-D700|SPH-D710|SPH-D720|SPH-I300|SPH-I325|SPH-I330|SPH-I350|SPH-I500|SPH-I600|SPH-I700|SPH-L700|SPH-M100|SPH-M220|SPH-M240|SPH-M300|SPH-M305|SPH-M320|SPH-M330|SPH-M350|SPH-M360|SPH-M370|SPH-M380|SPH-M510|SPH-M540|SPH-M550|SPH-M560|SPH-M570|SPH-M580|SPH-M610|SPH-M620|SPH-M630|SPH-M800|SPH-M810|SPH-M850|SPH-M900|SPH-M910|SPH-M920|SPH-M930|SPH-N100|SPH-N200|SPH-N240|SPH-N300|SPH-N400|SPH-Z400|SWC-E100|SCH-i909|GT-N7100|GT-N7105|SCH-I535',
  105. 'LG'            => '\bLG\b;|(LG|LG-)?(C800|C900|E400|E610|E900|E-900|F160|F180K|F180L|F180S|730|855|L160|LS840|LS970|LU6200|MS690|MS695|MS770|MS840|MS870|MS910|P500|P700|P705|VM696|AS680|AS695|AX840|C729|E970|GS505|272|C395|E739BK|E960|L55C|L75C|LS696|LS860|P769BK|P350|P870|UN272|US730|VS840|VS950|LN272|LN510|LS670|LS855|LW690|MN270|MN510|P509|P769|P930|UN200|UN270|UN510|UN610|US670|US740|US760|UX265|UX840|VN271|VN530|VS660|VS700|VS740|VS750|VS910|VS920|VS930|VX9200|VX11000|AX840A|LW770|P506|P925|P999)',
  106. 'Sony'          => 'SonyST|SonyLT|SonyEricsson|SonyEricssonLT15iv|LT18i|E10i|LT28h',
  107. 'Asus'          => 'Asus.*Galaxy|PadFone.*Mobile',
  108. // @ref: http://www.micromaxinfo.com/mobiles/smartphones
  109. // Added because the codes might conflict with Acer Tablets.
  110. 'Micromax'      => 'Micromax.*\b(A210|A92|A88|A72|A111|A110Q|A115|A116|A110|A90S|A26|A51|A35|A54|A25|A27|A89|A68|A65|A57|A90)\b',
  111. 'Palm'          => 'PalmSource|Palm',

PHP 如何使用Mobile Detect来判断访问网站的设备 安卓,平板,电脑相关推荐

  1. 【ASP.NET】判断访问网站的客户端是PC还是手机

    [ASP.NET]判断访问网站的客户端是PC还是手机 原文:[ASP.NET]判断访问网站的客户端是PC还是手机 主要就是通过客户端传递的User-agent来判断访问网站的客户端是PC还是手机,.N ...

  2. 如何在局域网内进行内部访问网站?

    根据我所遇到的情况,简单的叙述下: 第一个情况:在同一个网络里或者说用的是同一个路由器,一个台式机(win10系统,ip:192.168.2.104)用网线链接,一个笔记本(win7系统,ip:192 ...

  3. 响应式网页设计_响应式网页设计–如何使网站在手机和平​​板电脑上看起来不错

    响应式网页设计 In the rapidly evolving landscape of connected devices, responsive web design continues to b ...

  4. 千博企业网站管理系统源码 支持电脑和手机版

    介绍: 千博企业网站管理系统无使用时间限制.无域名限制,支持电脑版.手机版.绑定到微信.微信小程序,HTML5响应式内核,高效且优秀. 系统特色功能: 一.0费用,完全免费无限制. 内置一套精美企业网 ...

  5. 如何设计适合平板电脑浏览的网站

    Gartner预计2016年全球平板电脑数量将高达6.65亿个.而Adobe最近发布的数字营销报告显示,使用平板电脑浏览网站的用户比普通PC访客的每笔交易金额高出20%.这些数据意味着对于电子商务企业 ...

  6. php判段ua限制访问,php实现根据浏览器ua信息检测用户是否用手机(Mobile)访问网站的类...

    php实现根据浏览器ua信息检测用户是否用手机(Mobile)访问网站的类 发布于 2015-01-29 13:57:25 | 152 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言 ...

  7. 手机访问网站自动跳转到手机版

    方法一: 目前很多网站已经出现了手机版的网站,手机网站是和互联网上的网站同步更新的,大多数人访问我们的网站是直接访问电脑上的域名,不可能为了手机网站重新记住一个域名,大家都知道,中国人都是比较懒的,那 ...

  8. python访问网站添加请求头_Python headers请求头如何实现快速添加

    1.为什么要设置headers?J1Q免费资源网 在请求网页爬取的时候,输出的text信息中会出现抱歉,无法访问等字眼,这就是禁止爬取,需要通过反爬机制去解决这个问题.J1Q免费资源网 headers ...

  9. firefox伪造请求头信息,模拟手机访问网站

    大概有两年没有去过chinaz的论坛了,昨天上去逛了逛.正好看到一个朋友在问百度是如何判断是不是手机登录的.有几个热心朋友回答的是js,我把百度首页的js看了下,没有找到一丝的手持设备判断的信息,我也 ...

  10. java 机器人模拟人工操作_Java制作自动访问网站机器人!(转)

    如何制作一些论坛的自动发言机器人?(如果没有图片验证码的话!)在Java里,有些URL,URLConnection的类,这些类可以访问一个URL获取数据,可以发送Request,你就可以结合一些类做一 ...

最新文章

  1. 这样就算会了PHP么?-10
  2. javascript调用在有母版的页面中注意的几点记录
  3. Python_基础_1
  4. java竞拍系统代码,网上拍卖系统的设计与实现(源代码及全套资料).doc
  5. 简述Docker镜像、容器、仓库概念
  6. mysql基础操作(二)
  7. jsp在ie6中css的margin属性失效问题
  8. ASP.NET MVC Action返回结果类型【转】
  9. 使用C++模板判断是否基本类型
  10. 远程桌面无法连接方案
  11. JAVA面向对象之对象和类
  12. [译] Vue 最黑暗的一天
  13. 盒形图pandas绘制方法及数据不等长、坐标倾斜问题记录
  14. 数字逻辑速成复习备考期末
  15. java分号_java – 为什么这些分号不会产生错误?
  16. Shell及Linux三剑客grep、sed、awk
  17. 谈谈基于模型的设计(Model-Based Design)
  18. 2毫秒c51汇编语言延时函数,单片机精确毫秒延时函数
  19. Veil+tdm-gcc免杀360火绒瑞星
  20. 烧录器DediWare General使用方法

热门文章

  1. 第16课 火眼金睛——人脸识别
  2. 解决cmd命令行乱码问题
  3. HTML-特效代码大全
  4. sougou ubuntu 优麒麟_Ubuntu20.04LTS安装搜狗输入法
  5. [4G5G专题-81]:流程 - 4G LTE 小区切换流程大全
  6. 记:STM32F205双USB开发做device
  7. 【编译原理】【C语言】实验三:递归下降分析法
  8. 芯片验证学习-设计知识补充学习2-38译码器
  9. 利用计算机指令清理垃圾,计算机Dos处理,编写一键清理系统垃圾的bat代码,小白都可以学...
  10. matlab单服务排队模型,MATLAB模拟银行单服务台排队模型