使用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 开发环境配置(测试开发环境)
Apr 28 PHP
PHPThumb PHP 图片缩略图库
Mar 11 PHP
一个简单的php加密解密函数(动态加密)
Jun 19 PHP
php 强制下载文件实现代码
Oct 28 PHP
php采用curl访问域名返回405 method not allowed提示的解决方法
Jun 26 PHP
php通过array_push()函数添加多个变量到数组末尾的方法
Mar 18 PHP
PHP中调用C/C++制作的动态链接库的教程
Mar 10 PHP
PHP类的特性实例分析
Sep 28 PHP
Thinkphp整合微信支付功能
Dec 14 PHP
PHP最常用的正则表达式
Feb 13 PHP
利用Laravel生成Gravatar头像地址的优雅方法
Dec 30 PHP
PHP设计模式之外观模式(Facade)入门与应用详解
Dec 13 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 获取客户端真实IP地址多种方法小结
2010/05/15 PHP
mysqli_set_charset和SET NAMES使用抉择及优劣分析
2013/01/13 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
实例解析php的数据类型
2018/10/24 PHP
javascript编程起步(第二课)
2007/01/10 Javascript
JavaScript控制按钮可用或不可用的方法
2015/04/03 Javascript
js获取当前日期时间及其它操作汇总
2015/04/17 Javascript
javascript倒计时效果实现
2015/11/12 Javascript
浏览器环境下JavaScript脚本加载与执行探析之动态脚本与Ajax脚本注入
2016/01/19 Javascript
jQuery实现的placeholder效果完整实例
2016/08/02 Javascript
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
2017/05/01 jQuery
windows下更新npm和node的方法
2017/11/30 Javascript
angular6的响应式表单的实现
2018/10/10 Javascript
cocos2dx+lua实现橡皮擦功能
2018/12/20 Javascript
深入理解webpack process.env.NODE_ENV配置
2020/02/23 Javascript
[01:33:59]真人秀《加油 DOTA》 第六期
2014/09/09 DOTA
Python文件操作类操作实例详解
2014/07/11 Python
初学Python函数的笔记整理
2015/04/07 Python
Python的Flask框架中实现分页功能的教程
2015/04/20 Python
详解Python编程中基本的数学计算使用
2016/02/04 Python
python 打印对象的所有属性值的方法
2016/09/11 Python
python利用paramiko连接远程服务器执行命令的方法
2017/10/16 Python
python 实现登录网页的操作方法
2018/05/11 Python
值得收藏,Python 开发中的高级技巧
2018/11/23 Python
为什么说python更适合树莓派编程
2020/07/20 Python
Snapfish英国:在线照片打印和个性化照片礼品
2017/01/13 全球购物
参观考察邀请函范文
2014/01/29 职场文书
《谁的本领大》教后反思
2014/04/25 职场文书
关于安全的标语
2014/06/10 职场文书
中国梦读书活动总结
2014/07/10 职场文书
计划生育证明格式及范本
2014/10/09 职场文书
2014年除四害工作总结
2014/12/06 职场文书
世界遗产导游词
2015/02/13 职场文书
2015年乡镇纪检工作总结
2015/04/22 职场文书
2015年小学辅导员工作总结
2015/05/27 职场文书
pycharm无法导入lxml的解决办法
2021/03/31 Python