使用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 相关文章推荐
BBS(php &amp; mysql)完整版(五)
Oct 09 PHP
smarty静态实验表明,网络上是错的~呵呵
Nov 25 PHP
同台服务器使用缓存APC效率高于Memcached的演示代码
Feb 16 PHP
php中static静态变量的使用方法详解
Jun 04 PHP
php中http_build_query 的一个问题
Mar 25 PHP
php设置页面超时时间解决方法
Sep 22 PHP
四个PHP非常实用的功能
Sep 29 PHP
PHP实现的DES加密解密封装类完整实例
Apr 29 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
Nov 16 PHP
php微信支付之公众号支付功能
May 30 PHP
php实现等比例压缩图片
Jul 26 PHP
laravel按天、按小时,查询数据的实例
Oct 09 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
骨王战斗力在公会成员中排不进前五,却当选了会长,原因竟是这样
2020/03/02 日漫
PHP开发工具ZendStudio下Xdebug工具使用说明详解
2013/11/11 PHP
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
2016/02/23 PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
2016/03/23 PHP
php 输入输出流详解及示例代码
2016/08/25 PHP
for 循环性能比较 提高for循环的效率
2009/03/19 Javascript
基于JQuery制作的产品广告效果
2010/12/08 Javascript
五个jQuery图片画廊插件 推荐
2011/05/12 Javascript
javascript获取ckeditor编辑器的值(实现代码)
2013/11/18 Javascript
Bootstrap 粘页脚效果
2016/03/28 Javascript
jQuery中show与hide方法用法示例
2016/09/16 Javascript
JS中LocalStorage与SessionStorage五种循序渐进的使用方法
2017/07/12 Javascript
js装饰设计模式学习心得
2018/02/17 Javascript
详解js跨域请求的两种方式,支持post请求
2018/05/05 Javascript
VUE2.0中Jsonp的使用方法
2018/05/22 Javascript
利用Node.js批量抓取高清妹子图片实例教程
2018/08/02 Javascript
微信小程序引用iconfont图标的方法
2018/10/22 Javascript
使用vue中的混入mixin优化表单验证插件问题
2019/07/02 Javascript
vue项目中使用AES实现密码加密解密(ECB和CBC两种模式)
2019/08/12 Javascript
java遇到微信小程序 &quot;支付验证签名失败&quot; 问题解决
2019/12/22 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
2020/04/01 Javascript
vue离开当前页面触发的函数代码
2020/09/01 Javascript
js数组的基本使用总结
2021/01/18 Javascript
Python使用tkinter模块实现推箱子游戏
2019/10/08 Python
python自动化实现登录获取图片验证码功能
2019/11/20 Python
使用Python操作ArangoDB的方法步骤
2020/02/02 Python
python3中sys.argv的实例用法
2020/04/24 Python
python使用scapy模块实现ARP扫描的过程
2021/01/21 Python
详解HTML5中CSS外观属性
2020/09/10 HTML / CSS
捷克时尚网上商店:OTTO
2018/03/15 全球购物
《画杨桃》教学反思
2014/04/13 职场文书
班级体育活动总结
2014/07/05 职场文书
行政专员岗位职责说明书
2014/07/30 职场文书
竞选班干部演讲稿100字
2014/08/20 职场文书
学生意外伤害赔偿协议书
2014/09/17 职场文书
解决Python中的modf()函数取小数部分不准确问题
2021/05/28 Python