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 相关文章推荐
php4的session功能评述(三)
Oct 09 PHP
不用数据库的多用户文件自由上传投票系统(2)
Oct 09 PHP
用PHP实现将GB编码转换为UTF8
Nov 25 PHP
默默简单的写了一个模板引擎
Jan 02 PHP
Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
Dec 06 PHP
PHP冒泡排序算法代码详细解读
Jul 17 PHP
php获取表单中多个同名input元素的值
Mar 20 PHP
php网站被挂木马后的修复方法总结
Nov 06 PHP
PHP 9 大缓存技术总结
Sep 17 PHP
PHP页面跳转操作实例分析(header方法)
Sep 28 PHP
Laravel-添加后台模板AdminLte的实现方法
Oct 08 PHP
php在linux环境中如何使用redis详解
Dec 15 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
php float不四舍五入截取浮点型字符串方法总结
2013/10/28 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
2016/05/27 PHP
PHP解决高并发的优化方案实例
2020/12/10 PHP
jquery ajax abort()的使用方法
2010/10/28 Javascript
JS代码放在head和body中的区别分析
2011/12/01 Javascript
基于jquery的文章中所有图片width大小批量设置方法
2013/08/01 Javascript
IE6已终止操作问题的2种情况及解决
2014/04/23 Javascript
js实现两点之间画线的方法
2015/05/12 Javascript
详解Webwork中Action 调用的方法
2016/02/02 Javascript
探索angularjs+requirejs全面实现按需加载的套路
2016/02/26 Javascript
js中利用cookie实现记住密码功能
2020/08/20 Javascript
JS实现线性表的链式表示方法示例【经典数据结构】
2017/04/11 Javascript
windows下vue-cli及webpack搭建安装环境
2017/04/25 Javascript
微信小程序出现wx.navigateTo页面不跳转问题的解决方法
2017/12/26 Javascript
bootstrap模态框关闭后清除模态框的数据方法
2018/08/10 Javascript
小程序实现展开/收起的效果示例
2018/09/22 Javascript
Vue 实现显示/隐藏层的思路(加全局点击事件)
2019/12/31 Javascript
Python实现抓取城市的PM2.5浓度和排名
2015/03/19 Python
Python 中 Virtualenv 和 pip 的简单用法详解
2017/08/18 Python
在python带权重的列表中随机取值的方法
2019/01/23 Python
Python实现E-Mail收集插件实例教程
2019/02/06 Python
彻底理解Python中的yield关键字
2019/04/01 Python
详解tensorflow2.x版本无法调用gpu的一种解决方法
2020/05/25 Python
Python基于smtplib协议实现发送邮件
2020/06/03 Python
python调用win32接口进行截图的示例
2020/11/11 Python
韩国休闲女装品牌网站:ANAIS
2016/08/24 全球购物
澳大利亚制造的羊皮靴:Original UGG Boots
2017/11/13 全球购物
家长给幼儿园的表扬信
2014/01/09 职场文书
酒吧创业计划书
2014/01/18 职场文书
社区矫正工作方案
2014/06/04 职场文书
珠宝的促销活动方案
2014/08/31 职场文书
卫生厅领导班子党的群众路线教育实践活动整改措施
2014/09/20 职场文书
执法作风整顿剖析材料
2014/10/11 职场文书
学校政风行风评议工作总结
2014/10/21 职场文书
总账会计岗位职责
2015/04/02 职场文书
学习雷锋主题班会
2015/08/14 职场文书