使用PHP和JavaScript判断请求是否来自微信内浏览器


Posted in PHP onAugust 18, 2015

 微信浏览器的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

如果要做盗链

if(strpos($_SERVER["HTTP_USER_AGENT"],"MicroMessenger"))
  echo "Welcome to wechat word";
else
  echo "http/1.1 401 Unauthorized";

public function is_weixin(){ 
if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false ) {
 return true;
}
 return false;
}    
if($this->is_weixin()){
 }else{
 echo "请使用微信访问本网址。";
} 




js判断
function is_weixin(){
  var ua = navigator.userAgent.toLowerCase();
  if(ua.match(/MicroMessenger/i)=="micromessenger") {
    return true;
   } else {
    return false;
  }
}

当在手机端判断到微信浏览器之后,可以使用微信的分享js脚本对其进行处理,大家可以参考微信的官方文档,这里提供一个案例,了解下大概流程和思路
 

<script type="text/javascript" src="/jslib/wx_share.js"></script>
    <script>
      //分享链接时给其重写分享的标题、缩略图、链接、简介等
      var imgUrl = '<?php echo base_url('/images/per.png'); ?>';
      var lineLink = 'http://www.baidu.com/';
      var shareTitle = '我来给你送钱了';
      var descContent = '折射率,你知道是啥?';
      var timeline_title = 'timeline_title';
      var appid = '';
    </script>
    <script>
      function onBridgeReady() {
        WeixinJSBridge.call('showOptionMenu');
      }
    </script>
    <script>
      if (typeof WeixinJSBridge == "undefined") {
        if (document.addEventListener) {
          document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
        } else if (document.attachEvent) {
          document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
          document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
        }
      } else {
        onBridgeReady();
      }
    </script>
</head>

        

PHP 相关文章推荐
使用sockets:从新闻组中获取文章(二)
Oct 09 PHP
创建数据库php代码 用PHP写出自己的BLOG系统
Apr 12 PHP
php 判断访客是否为搜索引擎蜘蛛的函数代码
Jul 29 PHP
php版本的cron定时任务执行器使用实例
Aug 19 PHP
php启用sphinx全文搜索的实现方法
Dec 24 PHP
新浪SAE搭建PHP项目教程
Jan 28 PHP
iOS+PHP注册登录系统 PHP部分(上)
Dec 26 PHP
利用PHP判断文件是否为图片的方法总结
Jan 06 PHP
PHP第三方登录―QQ登录实现方法
Feb 06 PHP
PHP 进度条函数的简单实例
Sep 19 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
Jun 09 PHP
php数组函数array_push()、array_pop()及array_shift()简单用法示例
Jan 26 PHP
PHP的命令行命令使用指南
Aug 18 #PHP
使用PHP生成图片的缩略图的方法
Aug 18 #PHP
Nginx服务器上安装并配置PHPMyAdmin的教程
Aug 18 #PHP
详解PHP中的mb_detect_encoding函数使用方法
Aug 18 #PHP
深入讲解PHP Session及如何保持其不过期的方法
Aug 18 #PHP
php微信公众平台开发之获取用户基本信息
Aug 17 #PHP
PHP添加图片水印、压缩、剪切的封装类
Aug 17 #PHP
You might like
joomla内置的表单验证功能使用方法
2010/06/11 PHP
php设计模式 DAO(数据访问对象模式)
2011/06/26 PHP
深入PHP autoload机制的详解
2013/06/09 PHP
使用php显示搜索引擎来的关键词
2014/02/13 PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
2014/04/29 PHP
自己写的php curl库实现整站克隆功能
2015/02/12 PHP
php实现的简单检验登陆类
2015/06/18 PHP
ThinkPHP5.0多个文件上传后找不到临时文件的修改方法
2018/07/30 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
2020/04/07 PHP
判断一个变量是数组Array类型的方法
2013/09/16 Javascript
vue2滚动条加载更多数据实现代码
2017/01/10 Javascript
如何获取元素的最终background-color
2017/02/06 Javascript
express框架实现基于Websocket建立的简易聊天室
2017/08/10 Javascript
详解使用uni-app开发微信小程序之登录模块
2019/05/09 Javascript
详解mpvue实现对苹果X安全区域的适配
2019/07/31 Javascript
js实现贪吃蛇小游戏(加墙)
2020/07/31 Javascript
vue 使用微信jssdk,调用微信相册上传图片功能
2020/11/13 Javascript
Python获取当前时间的方法
2014/01/14 Python
使用python 获取进程pid号的方法
2014/03/10 Python
利用一个简单的例子窥探CPython内核的运行机制
2015/03/30 Python
python基于隐马尔可夫模型实现中文拼音输入
2016/04/01 Python
python中的lambda表达式用法详解
2016/06/22 Python
Python实现的根据文件名查找数据文件功能示例
2018/05/02 Python
python利用paramiko实现交换机巡检的示例
2020/09/22 Python
Java里面有没有全局变量?为什么?
2015/02/06 面试题
旅游管理本科生求职信
2013/10/14 职场文书
数控技术专科生自我评价
2014/01/08 职场文书
《小壁虎借尾巴》教学反思
2014/02/16 职场文书
2014年高考决心书
2014/03/11 职场文书
会计人员演讲稿
2014/09/11 职场文书
村干部任职承诺书
2015/01/21 职场文书
成品仓库管理员岗位职责
2015/04/09 职场文书
一个独生女的故事观后感
2015/06/04 职场文书
军训后的感想
2015/08/07 职场文书
Nginx配置并兼容HTTP实现代码解析
2021/03/31 Servers
canvas绘制折线路径动画实现
2021/05/12 Javascript