使用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 相关文章推荐
一个很方便的 XML 类!!原创的噢
Oct 09 PHP
彻底杜绝PHP的session cookie错误
Aug 09 PHP
利用Ffmpeg获得flv视频缩略图和视频时间的代码
Sep 15 PHP
如何获知PHP程序占用多少内存(memory_get_usage)
Sep 23 PHP
php ci框架验证码实例分析
Jun 26 PHP
php打开远程文件的方法和风险及解决方法
Nov 12 PHP
PHP处理JSON字符串key缺少双引号的解决方法
Sep 16 PHP
基于JQuery+PHP编写砸金蛋中奖程序
Sep 08 PHP
PHP计算当前坐标3公里内4个角落的最大最小经纬度实例
Feb 26 PHP
php如何修改SESSION的生存存储时间的实例代码
Jul 05 PHP
微信公众平台开发教程②微信端分享功能图文详解
Apr 10 PHP
PHP SESSION跨页面传递失败解决方案
Dec 11 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
咖啡知识 除了喝咖啡还有那些知识点
2021/03/06 新手入门
PHP stristr() 函数(不区分大小写的字符串查找)
2010/06/03 PHP
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
2011/12/25 PHP
codeigniter集成ucenter1.6双向通信的解决办法
2014/06/12 PHP
php获取网页里所有图片并存入数组的方法
2015/04/06 PHP
php实现求相对时间函数
2015/06/15 PHP
thinkphp3.x连接mysql数据库的方法(具体操作步骤)
2016/05/19 PHP
PHP常见的几种攻击方式实例小结
2019/04/29 PHP
JavaScript Prototype对象
2009/01/07 Javascript
javascript multibox 全选
2009/03/22 Javascript
js图片自动切换效果处理代码
2013/05/07 Javascript
JavaScript自定义方法实现trim()、Ltrim()、Rtrim()的功能
2013/11/03 Javascript
在JavaScript中判断整型的N种方法示例介绍
2014/06/18 Javascript
解析JavaScript的ES6版本中的解构赋值
2015/07/28 Javascript
js实现带缓冲效果的仿QQ面板折叠菜单代码
2015/09/06 Javascript
手机端转盘抽奖代码分享
2015/09/10 Javascript
JavaScript jquery及AJAX小结
2016/01/24 Javascript
jQuery插件uploadify实现ajax效果的图片上传
2016/06/18 Javascript
前端框架Vue.js构建大型应用浅析
2016/09/12 Javascript
vue2.0项目中使用Ueditor富文本编辑器示例代码
2017/08/14 Javascript
jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
2017/10/19 jQuery
自定义Vue组件打包、发布到npm及使用教程
2019/05/22 Javascript
js实现消灭星星(web简易版)
2020/03/24 Javascript
Python2.7读取PDF文件的方法示例
2017/07/13 Python
python中的for循环
2018/09/28 Python
django models里数据表插入数据id自增操作
2020/07/15 Python
idea2020手动安装python插件的实现方法
2020/07/17 Python
如何用python实现一个HTTP连接池
2021/01/14 Python
Rentalcars.com中国:世界上最大的在线汽车租赁服务
2019/08/22 全球购物
有子女的离婚协议书怎么写(范本)
2014/09/29 职场文书
2014年质量管理工作总结
2014/12/01 职场文书
2015年监理个人工作总结
2015/05/23 职场文书
《叶问2》观后感
2015/06/15 职场文书
教师节随笔
2015/08/15 职场文书
2016年师德先进个人事迹材料
2016/02/29 职场文书
Java中使用Filter过滤器的方法
2021/06/28 Java/Android