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

复制代码 代码如下:

$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 欺骗来说,就要麻烦一点了、
不过我们的目的是检测是否是微信端,而不是欺骗的问题、具体代码我就不写了,因为最讨厌那种拿来主义了、无限的复制黏贴,而且有时候代码被过滤了一部分也不管、

时间: 2024-08-03 13:28:09

php判断页面是否是微信打开的示例(微信打开网页)_php实例的相关文章

PHP 接入微信扫码支付总结(总结篇)_php实例

微信扫码支付分为两种模式, 模式一比较复杂,需要公众号配置回调地址. 模式二比较简单,只需要在代码中配置回调地址就可以了. 我这次使用的是模式二. 需要配置参数, const APPID = 'xxx'; const MCHID = 'xxx'; const KEY = 'xxx'; const APPSECRET = 'xxx'; 配置公众号的appid,appsecret.以及微信支付的mchid与key. 生成二维码,这个页面需要自己去美化,不像支付宝那样自带效果. require_onc

微信支付PHP SDK之微信公众号支付代码详解_php实例

这里假设你已经申请完微信支付 1. 微信后台配置  如图 我们先进行测试,所以先把测试授权目录和 测试白名单添加上.测试授权目录是你要发起微信请求的哪个文件所在的目录. 例如jsapi 发起请求一般是jsapi.php所在目录 为测试目录,测试白名单即开发人员的微信号. 正式的支付授权目录不能和测试的一样否则会报错.不填写或者填错授权目录以及测试白名单都会报错. 报错样例: NaNsystem:access_denied 不在测试白名单 2. 配置 lib/WxPay.Config.php文件

php页面,mysql数据库转utf-8乱码,utf-8编码问题总结_php实例

示例一: PHP页面转UTF-8编码问题 1.在代码开始出加入一行: header("Content-Type: text/html;charset=utf-8"); 2.PHP文件编码问题 点击编辑器的菜单:"文件"->"另存为",可以看到当前文件的编码,确保文件编码为:UTF-8,如果是ANSI,需要将编码改成:UTF-8. 3.PHP文件头BOM问题: PHP文件一定不可以有BOM标签,否则,会出现session不能使用的情况,并有类

php微信公众号开发模式详解_php实例

学习步骤:分四章来讲述这部分内容,下面是每章的大致内容. 1.了解开发模式与编辑模式,开发前的一些准备. 2.开发模式用户.微信服务器.个人服务器是如何交互的.什么是接口. 3.各种接口功能的调用与实现. 4.js-SDK的调用 微信公众号开发两种模式:编辑模式和开发模式.编辑模式比较简单,你不需要操作任何的代码,只需要借助微信提供的功能来管理自己的微信公众号.这种方式开发的页面比较简单,主要用来实现文章的推送等功能.开发者模式则能通过自己的后台服务器与微信关注用户实现更多的交互作用,调用微信的

微信公众平台开发之天气预报功能_php实例

最近有项目需求给微信公众号上增加了天气预报功能,使用百度提供的车联网API V3.0中的天气查询功能实现.先上一张最终效果图: 项目需求:有连接好的微信平台,有百度注册帐号,需要在百度LBS开放云平台,添加应用,获取AK代码,PHP代码编辑器,如EditPlus等 下面详细介绍下开发步骤: 第一步:准备工作       登录微信公众平台,检查服务器配置是否已启用,URL(服务器地址) 是否已配置Token(令牌),与自己写的微信入口文件中的Token(令牌一致),如下图:然后点击提交,只至网页上

thinkphp判断访客为手机端或PC端的方法_php实例

本文实例讲述了thinkphp判断访客为手机端或PC端的方法.分享给大家供大家参考.具体实现方法如下: 一.问题: 近日准备给自己的网站做一个小升级,让用户在手机二维码扫描的时候显示适合手机端来展示的模版[我用的是ThinkPHP3.0],代码是参考别人的 二.实现方法: 这里先说下大概的一个思路 简单两步: 统版本号和浏览器以及它的版本号(贴出的代码中数组中只有移动端信息,因此后面只需判断是否为数组中的某一个值即可). 根据数组中的值来判断访客是否为手机.pad.之类的移动端,如果是的话就规定

PHP页面输出时js设置input框的选中值_php实例

关于php页面输出时js设置input框的选中值的代码如下所示: /* 设置表单的值 */ function setValue(name, value) { var first = name.substr(0, 1), input, i = 0, val; if (value === "") return; if ("#" === first || "." === first) { input = $(name); } else { input

注册页面之前先验证用户名是否存在的php代码_php实例

reg.php 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-e

微信支付开发动态链接Native支付_php实例

注意: 微信支付现在分为v2版和v3版,2014年9月10号之前申请的为v2版,之后申请的为v3版.V3版的微信支付没有paySignKey参数.v2的相关介绍请参考方倍工作室的其他文章.本文介绍的为微信支付v3. 一.生成商品信息 动态链接支付过程中,是先生成商品交易进行,再来进行支付交易的. 1. 商品信息准备 主要是先定义商品的名称及价格,以及交易号.代码如下. include_once("../WxPayPubHelper/WxPayPubHelper.php"); //使用统