使用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输出控制功能在简繁体转换中的应用
Oct 09 PHP
用php和MySql来与ODBC数据连接
Oct 09 PHP
php REMOTE_ADDR之获取访客IP的代码
Apr 22 PHP
使用 PHPMAILER 发送邮件实例应用
Nov 07 PHP
基于php常用正则表达式的整理汇总
Jun 08 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
Dec 30 PHP
PHP封装的数据库保存session功能类
Jul 11 PHP
JSON两种结构之对象和数组的理解
Jul 19 PHP
php遍历替换目录下文件指定内容的方法
Nov 10 PHP
彻底搞懂PHP 变量结构体
Oct 11 PHP
php中文语义分析实现方法示例
Sep 28 PHP
PHP网页缓存技术优点及代码实例
Jul 29 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资源管理框架Assetic简介
2014/06/12 PHP
ThinkPHP实现带验证码的文件上传功能实例
2014/11/01 PHP
如何使用PHP Embed SAPI实现Opcodes查看器
2015/11/10 PHP
js表格分页实现代码
2009/09/18 Javascript
设为首页加入收藏兼容360/火狐/谷歌/IE等主流浏览器的代码
2013/03/26 Javascript
js传中文参数controller里获取参数乱码问题解决方法
2014/01/03 Javascript
Node.js中创建和管理外部进程详解
2014/08/16 Javascript
工厂模式在JS中的实践
2017/01/18 Javascript
JS实现的随机排序功能算法示例
2017/06/09 Javascript
Angular搜索 过滤 批量删除 添加 表单验证功能集锦(实例代码)
2017/10/25 Javascript
jQuery实现验证表单密码一致性及正则表达式验证邮箱、手机号的方法
2017/12/05 jQuery
基于jQuery使用Ajax动态执行模糊查询功能
2018/07/05 jQuery
Vue父子组件双向绑定传值的实现方法
2018/07/31 Javascript
webpack 3.X学习之多页面打包的方法
2018/09/04 Javascript
vue2.0 路由模式mode=&quot;history&quot;的作用
2018/10/18 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧滑动,右侧不动)
2019/01/23 Javascript
vuex中store存储store.commit和store.dispatch的用法
2020/07/24 Javascript
js实现3D旋转效果
2020/08/18 Javascript
完美解决python遍历删除字典里值为空的元素报错问题
2016/09/11 Python
利用Python如何实现数据驱动的接口自动化测试
2018/05/11 Python
python实现拉普拉斯特征图降维示例
2019/11/25 Python
你可能不知道的Python 技巧小结
2020/01/29 Python
flask 框架操作MySQL数据库简单示例
2020/02/02 Python
Python如何爬取qq音乐歌词到本地
2020/06/01 Python
html5简单示例_动力节点Java学院整理
2017/07/07 HTML / CSS
欧舒丹英国官网:购买欧舒丹护手霜等明星产品
2017/01/17 全球购物
英国最大的LED专业零售商:Led Hut
2018/03/16 全球购物
世界领先的电子书网站:eBooks.com(在线购买小说、非小说和教科书)
2019/03/30 全球购物
某公司部分笔试题
2013/11/05 面试题
大一学生假期实习的自我评价
2013/10/12 职场文书
大学生专科学习生活的自我评价
2013/12/07 职场文书
小学敬老月活动方案
2014/02/11 职场文书
应届毕业生自荐信例文
2014/02/26 职场文书
美术指导助理求职信
2014/04/20 职场文书
入党现实表现材料
2014/12/23 职场文书
JavaScript使用canvas绘制坐标和线
2021/04/28 Javascript