PHP で WeChat 上でページが開いているかどうかを確認する方法

WBOY
リリース: 2016-07-25 09:12:00
オリジナル
2113 人が閲覧しました

次のような質問があります。 WeChat 上でページを開くことができますが、PC 上で直接開くことはできません。

例として、php はページが WeChat によって開かれたかどうかを判断します。

  1. $user_agent = $_SERVER['HTTP_USER_AGENT'];
  2. if (strpos($user_agent, 'MicroMessenger') === false) {
  3. // WeChat 以外のブラウザは禁止されていますブラウジング
  4. echo "HTTP/1.1 401 Unauthorized";
  5. } else {
  6. // WeChat ブラウザ、アクセスを許可
  7. echo "MicroMessenger";
  8. // バージョン番号を取得
  9. preg_match('/.*?(MicroMessenger/([0 -9 .]+))s*/', $user_agent, $matches);
  10. echo '
    Version:'.$matches[2];
  11. }
コードをコピー

以下はAndroidです、WinPhone、iPhone の HTTP_USER_AGENT 情報。

  1. "HTTP_USER_AGENT": "Mozilla/5.0 (Linux; U; Android 4.1; zh-cn; Galaxy Nexus Build/Wind-Galaxy Nexus-V1.2) AppleWebKit/534.30 (Gecko のような KHTML) バージョン/ 4.0 Mobile Safari/534.30 MicroMessenger/5.0.1.352",
  2. "HTTP_USER_AGENT": "Mozilla/5.0 (互換性; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Nokia 920T)",
  3. "HTTP_USER_AGENT": "Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 (Mac OS と同様)) WinPhone には MicroMessenger が全くないので判定できないことが分かりますが、実は userAgent の判定がかなり偽物なので、WeixinJSBridge が存在するかどうかを js で判定してから ajax で php にすればいいと思います。 PHP はそれを検出し、処理中に「Loading...」を追加して実際のページ情報を返します。これは非常に調和的です。もちろん、ajax も騙すことができますが、userAgent の騙しと比較すると、少し面倒です。 ただし、私たちの目的は、それが WeChat 側であるかどうかを検出することであり、だますことではありません。借用や無制限のコピーアンドペーストが嫌いなので、コードの一部はフィルタリングされることがあります。 、

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!