微信公众平台消息接口开发(31)微信浏览器HTTP_USER_AGENT判断


2015/4/11 微信公众平台消息接口开发(31)微信浏览器HTTP_USER_AGENT判断 ­ 方倍工作室 ­ 博客园 http://www.cnblogs.com/txw1958/archive/2013/05/25/weixin­if31­http_user_agent.html 1/5 方倍工作室 微信公众平台开发 商务联系QQ:1354386063 微信公众平台消息接口开发(31)微信浏览器HTTP_USER_AGENT判断 微信公众平台开发 微信公众平台开发者 微信公众平台开发模式 微信浏览 器 HTTP_USER_AGENT 作者:方倍工作室  原文:http://www.cnblogs.com/txw1958/archive/2013/05/25/weixin­if31­ http_user_agent.html    在微信公众平台的开发过程中,我们有时需要开发网页并判断是否是是来自微信浏览器 访问,本文介绍如何做出这一判断。   一、$_SERVER数组 $_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服 务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项 目。   在 $_SERVER 中,你也许能够,也许不能够找到下面的这些元素。注意,如果以命令 行方式运行 PHP,下面列出的元素几乎没有有效的(或是没有任何实际意义的)。 'PHP_SELF' 当前执行脚本的文件名,与 document root 有关。例如,在地址 为 http://example.com/test.php/foo.bar 的脚本中使 用 $_SERVER['PHP_SELF'] 将得到/test.php/foo.bar。__FILE__ 常量包含当前 (例如包含)文件的完整路径和文件名。 从 PHP 4.3.0 版本开始,如果 PHP 以命令行 模式运行,这个变量将包含脚本名。之前的版本该变量不可用。 'argv' 传递给该脚本的参数的数组。当脚本以命令行方式运行时,argv 变量传递给程序 C 语 言样式的命令行参数。当通过 GET 方式调用时,该变量包含query string。 'argc' 包含命令行模式下传递给该脚本的参数的数目(如果运行在命令行模式下)。 'GATEWAY_INTERFACE' 服务器使用的 CGI 规范的版本;例如,“CGI/1.1”。 'SERVER_ADDR' 当前运行脚本所在的服务器的 IP 地址。 'SERVER_NAME' 当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚 拟主机所设置的值决定。 'SERVER_SOFTWARE' 服务器标识字符串,在响应请求时的头信息中给出。 'SERVER_PROTOCOL' 请求页面时通信协议的名称和版本。例如,“HTTP/1.0”。 'REQUEST_METHOD' 访问页面使用的请求方法;例如,“GET”, “HEAD”,“POST”,“PUT” 'REQUEST_TIME' 请求开始时的时间戳。从 PHP 5.1.0 起可用。 首页 博问 闪存 新随笔 联系 管理 随笔­542  文章­7  评论­1297 公告 《微信公众平台开发最佳实践》 案例最多: 超30个应用及功能代码 内容最全: 覆盖微信五大体系接口 专家推荐: O2O第一媒体CEO推荐 经典语言: 使用PHP+MySQL编写 最受欢迎: 入门教程达60万阅读量 源码开放: 已购书读者可下载源码 免费空间: 可获SAE中级认证推荐 帮助成功: 前年就已有学生赚几千 购买方式 点击下面图标购买       加关注 方倍工作室 (粉丝2174) 昵称:方倍工作室 园龄:3年5个月 粉丝:1573 关注:3 +加关注 搜索   找找看 最新随笔 1. 微信连Wi­Fi专业设备列表 2. 微信自定义菜单扩容? 3. 雷军演讲:小米未来的发展计划和目 标 4. 微信支付现金红包接口 5. 微信,是怎么过来的(2010­2015) 6. 【长期有效】1分钱抢100M上网流量 及iPhone5S免费抽奖 7. 微信智能硬件——微信相框 8. 你的朋友圈刷出宝马广告了吗? 9. 微信朋友圈广告详细说明 10. 防欺诈盗号请勿支付或输入qq密码 随笔分类(344) 高级接口(24) 开发教程(36) 开放平台(1) 微信动态(69) 2015/4/11 微信公众平台消息接口开发(31)微信浏览器HTTP_USER_AGENT判断 ­ 方倍工作室 ­ 博客园 http://www.cnblogs.com/txw1958/archive/2013/05/25/weixin­if31­http_user_agent.html 2/5 'REQUEST_TIME_FLOAT' 请求开始时的时间戳,微秒级别的精准度。 自 PHP 5.4.0 开始生效。 'QUERY_STRING' query string(查询字符串),如果有的话,通过它进行页面访问。 'DOCUMENT_ROOT' 当前运行脚本所在的文档根目录。在服务器配置文件中定义。 'HTTP_ACCEPT' 当前请求头中 Accept: 项的内容,如果存在的话。 'HTTP_ACCEPT_CHARSET' 当前请求头中 Accept­Charset: 项的内容,如果存在的话。例如:“iso­8859­ 1,*,utf­8”。 'HTTP_ACCEPT_ENCODING' 当前请求头中 Accept­Encoding: 项的内容,如果存在的话。例如:“gzip”。 'HTTP_ACCEPT_LANGUAGE' 当前请求头中 Accept­Language: 项的内容,如果存在的话。例如:“en”。 'HTTP_CONNECTION' 当前请求头中 Connection: 项的内容,如果存在的话。例如:“Keep­Alive”。 'HTTP_HOST' 当前请求头中 Host: 项的内容,如果存在的话。 'HTTP_REFERER' 引导用户代理到当前页的前一页的地址(如果存在)。由 user agent 设置决定。并不 是所有的用户代理都会设置该项,有的还提供了修改 HTTP_REFERER 的功能。简言 之,该值并不可信。 'HTTP_USER_AGENT' 当前请求头中 User­Agent: 项的内容,如果存在的话。该字符串表明了访问该页面的 用户代理的信息。一个典型的例子是:Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586)。 'HTTPS' 如果脚本是通过 HTTPS 协议被访问,则被设为一个非空的值。 'REMOTE_ADDR' 浏览当前页面的用户的 IP 地址。 'REMOTE_HOST' 浏览当前页面的用户的主机名。DNS 反向解析不依赖于用户的 REMOTE_ADDR。 'REMOTE_PORT' 用户机器上连接到 Web 服务器所使用的端口号。 'REMOTE_USER' 经验证的用户 'REDIRECT_REMOTE_USER' 验证的用户,如果请求已在内部重定向。 'SCRIPT_FILENAME' 当前执行脚本的绝对路径 'SERVER_ADMIN' 该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。如果脚本运行在 一个虚拟主机上,则该值是那个虚拟主机的值。 'SERVER_PORT' Web 服务器使用的端口。默认值为 “80”。如果使用 SSL 安全连接,则这个值为用户 设置的 HTTP 端口。 'SERVER_SIGNATURE' 包含了服务器版本和虚拟主机名的字符串。 'PATH_TRANSLATED' 当前脚本所在文件系统(非文档根目录)的基本路径。这是在服务器进行虚拟到真实路 径的映像后的结果。 微信开发(179) 微信认证(2) 微信小店(3) 微信硬件(2) 微信支付v2(25) 微信支付v3(3) 微信导航 教爸爸妈妈用微信 微信调试器 微信公众平台开发指导服务 微信公众平台开发最佳实践 微信接口100 友情链接 helloweba Highcharts Tutorials 快递查询 苹果产品查询 阅读排行榜 1. 微信公众平台开发入门教程(605164) 2. 微信公众平台开发(71)OAuth2.0 网页授权(119189) 3. 微信公众平台消息接口开发(1)启用 接口(104317) 4. 微信公众平台开发(58)自定义菜单 (75182) 5. 你的服务器没有正确响应Token验证 的解决方法(74215) 6. C#解析json文件的方法(73534) 7. 微信公众平台开发(76) 无高级接口账 号获取用户基本信息(71355) 8. Scrapy入门教程(60731) 9. 微信公众平台开发最佳实践(59226) 10. 微信公众平台开发(41)一键关注 微信公众平台账号(56783) 11. 微信公众平台开发(26) ACCESS TOKEN(52988) 12. 微信公众平台消息接口开发(8)小 黄鸡(小贱鸡)机器人(45307) 13. 百度天气预报接口(42811) 14. 微信公众平台消息接口API指南 (41837) 15. C#中的WebBrowser控件的使用 (39671) 评论排行榜 1. 微信公众平台开发入门教程(125) 2. 程序员接私活经验谈[转](63) 3. 接口100(48) 4. 微信公众平台开发(76) 无高级接口账 号获取用户基本信息(48) 5. 微信公众平台开发(71)OAuth2.0 网页授权(46) 6. 微信支付开发(1) JS API支付(40) 2015/4/11 微信公众平台消息接口开发(31)微信浏览器HTTP_USER_AGENT判断 ­ 方倍工作室 ­ 博客园 http://www.cnblogs.com/txw1958/archive/2013/05/25/weixin­if31­http_user_agent.html 3/5 'SCRIPT_NAME' 包含当前脚本的路径。这在页面需要指向自己时非常有用。__FILE__ 常量包含当前脚 本(例如包含文件)的完整路径和文件名。 'REQUEST_URI' URI 用来指定要访问的页面。例如 “/index.html”。 'PHP_AUTH_DIGEST' 当作为 Apache 模块运行时,进行 HTTP Digest 认证的过程中,此变量被设置成客户 端发送的“Authorization” HTTP 头内容(以便作进一步的认证操作)。 'PHP_AUTH_USER' 当 PHP 运行在 Apache 或 IIS(PHP 5 是 ISAPI)模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的用户名。 'PHP_AUTH_PW' 当 PHP 运行在 Apache 或 IIS(PHP 5 是 ISAPI)模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的密码。 'AUTH_TYPE' 当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是 认证的类型。 'PATH_INFO' 包含由客户端提供的、跟在真实脚本名称之后并且在查询语句(query string)之前的 路径信息,如果存在的话。例如,如果当前脚本是通过 URLhttp://www.example.com/php/path_info.php/some/stuff?foo=bar 被访 问,那么 $_SERVER['PATH_INFO'] 将包含 /some/stuff。 'ORIG_PATH_INFO' 在被 PHP 处理之前,“PATH_INFO” 的原始版本。   二、获取HTTP_USER_AGENT 以下方法可获得 在iPhone下,返回 Mozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46  (KHTML, like Gecko) Mobile/9B176 MicroMessenger/4.3.2 在Android下,返回 Mozilla/5.0 (Linux; U; Android 2.3.6; zh­cn; GT­S5660 Build/GINGERBREAD)  AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1  MicroMessenger/4.5.255 可以看到,微信浏览器为 MicroMessenger ,后面还有其版本号 与此同时,还可以判断手机类型为iPhone还是Android   三、判断微信浏览器访问 我们判断HTTP_USER_AGENT中是否有MicroMessenger即可   7. 微信公众平台消息接口开发(50)在 线点歌/在线音乐(34) 8. 微信公众平台消息接口开发(8)小黄 鸡(小贱鸡)机器人(33) 9. 古城钟楼微博地支报时程序铛,100 行代码实现,价值一天20万粉丝(32) 10. 微信支付开发(3) JS API支付(30) 推荐排行榜 1. 微信公众平台开发入门教程(60) 2. 程序员接私活经验谈[转](41) 3. C#解析json文件的方法(13) 4. 微信公众平台消息接口开发(1)启用 接口(12) 5. C#实现万年历(农历、节气、节日、 星座、星宿、属相、生肖、闰年月、时 辰)(10) 6. 古城钟楼微博地支报时程序铛,100 行代码实现,价值一天20万粉丝(9) 7. Scrapy入门教程(8) 8. C#中的WebBrowser控件的使用(7) 9. C#中的线程(一)入门(7) 10. 百度天气预报接口(7) 11. 微信公众平台开发(76) 无高级接口 账号获取用户基本信息(6) 12. 微信公众平台开发(82) 天气预报(5) 13. 微信公众平台开发(89) 高级群发接 口(5) 14. python3 抓取网页资源的 N 种方法 (5) 15. c#中跨线程调用windows窗体控件 (5) 2015/4/11 微信公众平台消息接口开发(31)微信浏览器HTTP_USER_AGENT判断 ­ 方倍工作室 ­ 博客园 http://www.cnblogs.com/txw1958/archive/2013/05/25/weixin­if31­http_user_agent.html 4/5     ================================================ =============   欢迎关注方倍工作室微信,了解我们及行业的最新动态 ============================================ ★微信公众平台教程——新手入门 点击进入 ★购买微信公众平台开发最佳实践 点击进入 ★免费获取新浪SAE中级认证,得每月10000云豆(价值1200元/年) 点击进入  ★1分钱抢100M上网流量及iPhone5S免费抽奖 2015/4/11 微信公众平台消息接口开发(31)微信浏览器HTTP_USER_AGENT判断 ­ 方倍工作室 ­ 博客园 http://www.cnblogs.com/txw1958/archive/2013/05/25/weixin­if31­http_user_agent.html 5/5 方倍工作室 关注 ­ 3 粉丝 ­ 1573 +加关注 0 0 (请您对文章做出评价)          ☆微信付费开发联系QQ 1354386063 ☆最佳实践读者服务QQ群290504874 ☆微 信开发技术交流QQ群249410807  ★技术问题咨询,请搜索或扫描二维码关注[每日资讯],在菜单中进入'微社区'后在微 社区中提问 分类: 微信开发 绿色通道:  好文要顶   关注我   收藏该文 与我联系   « 上一篇:微信公众平台消息接口开发(30)大众点评商户信息团购及优惠券查询 » 下一篇:微信公众平台消息接口开发(32)空气质量指数查询 posted @ 2013­05­25 10:14 方倍工作室 阅读(14965) 评论(3) 编辑 收藏 评论列表 #1楼 2013­05­25 12:07 xoyozo    前几天刚做到这个,用于防盗链 支持(0) 反对(0) #2楼 2013­07­26 08:58 逍遥蓝枫叶    win8手机无法进行判断是否为微信浏览器打开 支持(0) 反对(0) #3楼[楼主] 2013­09­03 11:52 方倍工作室    @逍遥蓝枫叶 你自己获取一下是什么 支持(0) 反对(0) 刷新评论 刷新页面 返回顶部 注册用户登录后才能发表评论,请 登录 或 注册,访问网站首页。 博客园首页 博问 新闻 闪存 程序员招聘 知识库 最新IT新闻: · 雷军,黄章,罗永浩:机会主义者的胜利? · 黄金版Apple Watch不到一小时就卖光 · 粒子加速器能在地球大气层形成人造极光 · 创业的艺术之 – 初创公司董事会管理艺术 · 创业板:不仅仅是泡沫 » 更多新闻... 最新知识库文章: · 首席工程师揭秘:LinkedIn大数据后台是如何运作的 · 码农的思维训练:超越专家 · 如何摆脱令人头疼的架构依赖? · 老码农的技术理想 · 我们为什么要思考算法 » 更多知识库文章...
还剩4页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 3 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf