php判断页面是否是微信打开的示例(微信打开网页)


Posted in PHP onApril 25, 2014
$user_agent = $_SERVER['HTTP_USER_AGENT'];
if (strpos($user_agent, 'MicroMessenger') === false) {
    // 非微信浏览器禁止浏览
    echo "HTTP/1.1 401 Unauthorized";
} else {
    // 微信浏览器,允许访问
    echo "MicroMessenger";
    // 获取版本号
    preg_match('/.*?(MicroMessenger\/([0-9.]+))\s*/', $user_agent, $matches);
    echo '<br>Version:'.$matches[2];
}

好吧,我也不能直接反驳,不过,这个确实非常不靠谱、
拿数据说话吧。
下面分别是 Android, WinPhone, iPhone 的 HTTP_USER_AGENT 信息。

"HTTP_USER_AGENT": "Mozilla/5.0 (Linux; U; Android 4.1; zh-cn; Galaxy Nexus Build/Wind-Galaxy Nexus-V1.2) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 MicroMessenger/5.0.1.352",
"HTTP_USER_AGENT": "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Nokia 920T)",
"HTTP_USER_AGENT": "Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B329 MicroMessenger/5.0.1",

可以看到 WinPhone 根本就没有 MicroMessenger 所以无法判断、其实 userAgent 判断本来就是很假的事情、所以我觉得应该用 js 判断是否存在 WeixinJSBridge ,然后 ajax 给 php
php检测到了然后返回真正的页面信息、期间加一个 “玩命加载中...” 这样就很和谐了、当然 ajax 的话,也是可以欺骗的,但是相对 userAgent 欺骗来说,就要麻烦一点了、
不过我们的目的是检测是否是微信端,而不是欺骗的问题、具体代码我就不写了,因为最讨厌那种拿来主义了、无限的复制黏贴,而且有时候代码被过滤了一部分也不管、

PHP 相关文章推荐
用PHP实现多服务器共享SESSION数据的方法
Mar 16 PHP
解析php中curl_multi的应用
Jul 17 PHP
php用正则表达式匹配URL的简单方法
Nov 12 PHP
神盾加密解密教程(二)PHP 神盾解密
Jun 08 PHP
destoon利用Rewrite规则设置网站安全
Jun 21 PHP
php操作MongoDB类实例
Jun 17 PHP
php设置页面超时时间解决方法
Sep 22 PHP
jquery+thinkphp实现跨域抓取数据的方法
Oct 15 PHP
PHP文字转图片功能原理与实现方法分析
Aug 31 PHP
弹出模态框modal的实现方法及实例
Sep 19 PHP
PHP实现小程序批量通知推送
Nov 27 PHP
php常用字符串查找函数strstr()与strpos()实例分析
Jun 21 PHP
php检测文件编码的方法示例
Apr 25 #PHP
php中mysql连接和基本操作代码(快速测试使用,简单方便)
Apr 25 #PHP
windows服务器中检测PHP SSL是否开启以及开启SSL的方法
Apr 25 #PHP
php除数取整示例
Apr 24 #PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
Apr 24 #PHP
PHP模板引擎Smarty的缓存使用总结
Apr 24 #PHP
php smarty模板引擎的6个小技巧
Apr 24 #PHP
You might like
Laravel模板引擎Blade中section的一些标签的区别介绍
2015/02/10 PHP
php微信公众平台开发之微信群发信息
2016/09/13 PHP
微信公众平台开发(五) 天气预报功能开发
2016/12/03 PHP
Laravel中的Auth模块详解
2017/08/17 PHP
在 Laravel 中动态隐藏 API 字段的方法
2019/10/25 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
2020/03/02 PHP
JS操作图片(增,删,改) 例子
2013/04/17 Javascript
jQuery中outerHeight()方法用法实例
2015/01/19 Javascript
jQuery使用fadein方法实现渐出效果实例
2015/03/27 Javascript
如何用angularjs制作一个完整的表格
2016/01/21 Javascript
Bootstrap4一次重大更新 几乎涉及每行代码
2016/05/16 Javascript
解析微信JS-SDK配置授权,实现分享接口
2016/12/09 Javascript
Bootstrap php制作动态分页标签
2016/12/23 Javascript
javascript中递归的两种写法
2017/01/17 Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
2017/03/09 Javascript
JS实现的自动打字效果示例
2017/03/10 Javascript
JavaScript中为事件指定处理程序的五种方式分析
2018/07/27 Javascript
JS实现数组的增删改查操作示例
2018/08/29 Javascript
vue-cli 构建骨架屏的方法示例
2018/11/08 Javascript
jQuery事件多次绑定与解绑问题实例分析
2019/02/19 jQuery
浅谈Python的异常处理
2016/06/19 Python
Python建立Map写Excel表实例解析
2018/01/17 Python
Python Unittest根据不同测试环境跳过用例的方法
2018/12/16 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
2019/12/12 Python
Tensorflow 实现释放内存
2020/02/03 Python
django 实现简单的插入视频
2020/04/07 Python
解决运行出现'dict' object has no attribute 'has_key'问题
2020/07/15 Python
Django利用elasticsearch(搜索引擎)实现搜索功能
2020/11/26 Python
今天学到的CSS最新技术(与图片背景相关)
2012/12/24 HTML / CSS
社区戒毒工作方案
2014/06/04 职场文书
区长工作作风个人整改措施
2014/10/01 职场文书
2014年便民服务中心工作总结
2014/12/20 职场文书
小学运动会入场口号
2015/12/24 职场文书
医务人员岗前培训心得体会
2016/01/08 职场文书
2016年教师学习教师法心得体会
2016/01/20 职场文书
有关花店创业的计划书模板
2019/08/27 职场文书