Heim > php教程 > php手册 > php判断页面是否是微信打开的示例

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

WBOY
Freigeben: 2016-06-13 09:37:02
Original
906 Leute haben es durchsucht

   代码如下:

  $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 '

  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 欺骗来说,就要麻烦一点了、

  不过我们的目的是检测是否是微信端,而不是欺骗的问题、具体代码我就不写了,因为最讨厌那种拿来主义了、无限的复制黏贴,而且有时候代码被过滤了一部分也不管、

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage