使用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 增加了对 .ZIP 文件的读取功能
Oct 09 PHP
PHP调用三种数据库的方法(1)
Oct 09 PHP
php知道与问问的采集插件代码
Oct 12 PHP
PHP 第三节 变量介绍
Apr 28 PHP
限制ckeditor上传图片文件大小的方法
Nov 15 PHP
PHP大神的十大优良习惯
Sep 14 PHP
PHP编程快速实现数组去重的方法详解
Jul 22 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
Sep 17 PHP
PHP对称加密算法(DES/AES)类的实现代码
Nov 14 PHP
Laravel框架路由管理简单示例
May 07 PHP
Laravel 实现数据软删除功能
Aug 21 PHP
phpStorm2020 注册码
Sep 17 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中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
2013/06/28 PHP
php pki加密技术(openssl)详解
2013/07/01 PHP
php验证是否是md5编码的简单代码
2014/04/01 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
2015/12/08 PHP
详谈配置phpstorm完美支持Codeigniter(CI)代码自动完成(代码提示)
2017/04/07 PHP
laravel 框架结合关联查询 when()用法分析
2019/11/22 PHP
Prototype最新版(1.5 rc2)使用指南(1)
2007/01/10 Javascript
jQuery EasyUI API 中文文档 - Documentation 文档
2011/09/29 Javascript
Array栈方法和队列方法的特点说明
2014/01/24 Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
2016/12/21 Javascript
详解nodejs微信公众号开发——6.自定义菜单
2017/04/13 NodeJs
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
2017/05/10 Javascript
JavaScript简单拖拽效果(1)
2017/05/17 Javascript
Vue2.0 v-for filter列表过滤功能的实现
2018/09/07 Javascript
详解Vue SSR( Vue2 + Koa2 + Webpack4)配置指南
2018/11/13 Javascript
解决VUE mounted 钩子函数执行时 img 未加载导致页面布局的问题
2020/07/27 Javascript
python里对list中的整数求平均并排序
2014/09/12 Python
Python中的zipfile模块使用详解
2015/06/25 Python
python删除本地夹里重复文件的方法
2020/11/19 Python
对dataframe进行列相加,行相加的实例
2018/06/08 Python
django+tornado实现实时查看远程日志的方法
2019/08/12 Python
Python django搭建layui提交表单,表格,图标的实例
2019/11/18 Python
Python实现实时数据采集新型冠状病毒数据实例
2020/02/04 Python
python 实现PIL模块在图片画线写字
2020/05/16 Python
Python基于httpx模块实现发送请求
2020/07/07 Python
Python中Qslider控件实操详解
2021/02/20 Python
基于PyTorch中view的用法说明
2021/03/03 Python
一张图片能隐含千言万语之隐藏你的程序代码
2012/12/13 HTML / CSS
美国购买汽车零件网站:Buy Auto Parts
2018/04/02 全球购物
Java Servlet API中forward() 与redirect()的区别
2014/04/20 面试题
“学雷锋活动月”总结
2014/03/09 职场文书
党的群众路线个人对照检查材料
2014/09/23 职场文书
领导干部群众路线个人对照检查材料思想汇报
2014/09/30 职场文书
自查自纠整改报告
2014/11/06 职场文书
MySQL数据库如何给表设置约束详解
2022/03/13 MySQL
winserver2019安装软件一直卡在应用程序正在为首次使用做准备
2022/06/10 Servers