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 编写安全的代码时容易犯的错误小结
May 20 PHP
php利用腾讯ip分享计划获取地理位置示例分享
Jan 20 PHP
php简单定时执行任务的实现方法
Feb 23 PHP
PHP随机生成唯一HASH值自定义函数
Apr 20 PHP
php生成年月日下载列表的方法
Apr 24 PHP
用PHP生成excel文件到指定目录
Jun 22 PHP
php实现可逆加密的方法
Aug 11 PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
Mar 15 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
Nov 12 PHP
PHP的PDO预处理语句与存储过程
Jan 27 PHP
浅谈Laravel中的三种中间件的作用
Oct 13 PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 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数组排序函数合集 以及它们之间的联系分析
2013/06/27 PHP
解析php根据ip查询所在地区(非常有用,赶集网就用到)
2013/07/01 PHP
详解Laravel视图间共享数据与视图Composer
2016/08/04 PHP
解读IE和firefox下JScript和HREF的执行顺序
2008/01/12 Javascript
xss文件页面内容读取(解决)
2010/11/28 Javascript
基于jquery的大众点评,分类导航实现代码
2011/08/23 Javascript
扩展IE中一些不兼容的方法如contains、startWith等等
2014/01/09 Javascript
JS 日期比较大小的简单实例
2014/01/13 Javascript
Eclipse去除js(JavaScript)验证错误
2014/02/11 Javascript
js实现同一页面多个不同运动效果的方法
2015/04/10 Javascript
基于JavaScript实现移动端TAB触屏切换效果
2015/10/20 Javascript
requireJS使用指南
2016/04/27 Javascript
基于Bootstrap实现图片轮播效果
2016/05/22 Javascript
js 能实现监听F5页面刷新子iframe 而父页面不刷新的方法
2016/11/09 Javascript
详解Node.js:events事件模块
2016/11/24 Javascript
使用vue的transition完成滑动过渡的示例代码
2018/06/25 Javascript
微信小程序项目实践之验证码倒计时功能
2018/07/18 Javascript
关于单文件组件.vue的使用
2018/09/20 Javascript
js 实现 list转换成tree的方法示例(数组到树)
2019/08/18 Javascript
vue使用codemirror的两种用法
2019/08/27 Javascript
mpvue 项目初始化及实现授权登录的实现方法
2020/07/20 Javascript
python模块之re正则表达式详解
2017/02/03 Python
Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
2018/04/24 Python
mac PyCharm添加Python解释器及添加package路径的方法
2018/10/29 Python
关于tensorflow softmax函数用法解析
2020/06/30 Python
python编程的核心知识点总结
2021/02/08 Python
Pycharm制作搞怪弹窗的实现代码
2021/02/19 Python
可打印的优惠券、杂货和优惠券代码:Coupons.com
2018/06/12 全球购物
Dr.Jart+美国官网:韩国药妆品牌
2019/01/18 全球购物
英国123鲜花网站:123 Flowers
2019/07/07 全球购物
股权投资意向书
2014/04/01 职场文书
理发店策划方案
2014/06/05 职场文书
2014年教师节红领巾广播稿
2014/09/10 职场文书
单位租房协议书范本
2014/12/04 职场文书
离婚案件答辩状
2015/05/22 职场文书
2016年师德先进个人事迹材料
2016/02/29 职场文书