使用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 相关文章推荐
PHP截取中文字符串的问题
Jul 12 PHP
图形数字验证代码
Oct 09 PHP
加强版phplib的DB类
Mar 31 PHP
fleaphp crud操作之find函数的使用方法
Apr 23 PHP
PHP学习笔记(二) 了解PHP的基本语法以及目录结构
Aug 04 PHP
PHP中使用curl伪造IP的简单方法
Aug 07 PHP
两种php去除二维数组的重复项方法
Nov 04 PHP
PHP实现的构造sql语句类实例
Feb 03 PHP
PHP简单实现模拟登陆功能示例
Sep 15 PHP
windows环境下使用Composer安装ThinkPHP5
May 18 PHP
php+ajax实现商品对比功能示例
Apr 13 PHP
php解析非标准json、非规范json的方式实例
Dec 10 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
php 常用类汇总 推荐收藏
2010/05/13 PHP
JS控制文本框textarea输入字数限制的方法
2013/06/17 Javascript
iframe子页面与父页面在同域或不同域下的js通信
2014/05/07 Javascript
jQuery的css()方法用法实例
2014/12/24 Javascript
jquery实现带缩略图的可定制高度画廊效果(5种)
2015/08/28 Javascript
js获取图片宽高的方法
2015/11/25 Javascript
js+css3制作时钟特效
2016/10/16 Javascript
js中通过getElementsByName访问name集合对象的方法
2016/10/31 Javascript
VUE JS 使用组件实现双向绑定的示例代码
2017/01/10 Javascript
微信小程序实现留言功能
2018/10/31 Javascript
Python写的Tkinter程序屏幕居中方法
2015/03/10 Python
实例说明Python中比较运算符的使用
2015/05/13 Python
Python每天必学之bytes字节
2016/01/28 Python
python字典DICT类型合并详解
2017/08/17 Python
利用selenium 3.7和python3添加cookie模拟登陆的实现
2017/11/20 Python
Python实现Kmeans聚类算法
2020/06/10 Python
Django migrations 默认目录修改的方法教程
2018/09/28 Python
3个用于数据科学的顶级Python库
2018/09/29 Python
python构建基础的爬虫教学
2018/12/23 Python
对Python模块导入时全局变量__all__的作用详解
2019/01/11 Python
python网络应用开发知识点浅析
2019/05/28 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
对Python3中列表乘以某一个数的示例详解
2019/07/20 Python
Python使用itchat模块实现简单的微信控制电脑功能示例
2019/08/26 Python
Python bisect模块原理及常见实例
2020/06/17 Python
顶级宝石首饰网络零售商:Angara
2016/10/25 全球购物
Linux内核产生并发的原因
2012/07/13 面试题
教师求职信范文分享
2013/12/27 职场文书
业务内勤岗位职责
2014/04/30 职场文书
感恩教育月活动总结
2014/07/07 职场文书
驻村工作先进事迹
2014/08/14 职场文书
创建绿色社区汇报材料
2014/08/22 职场文书
我爱幼儿园演讲稿
2014/09/11 职场文书
2016元旦晚会主持词
2015/07/01 职场文书
读《钢铁是怎样炼成的》有感:百炼方成钢
2019/11/05 职场文书
Elasticsearch6.2服务器升配后的bug(避坑指南)
2022/09/23 Servers