ホームページ  >  記事  >  バックエンド開発  >  PHP を使用してページが WeChat で開かれたかどうかを判断する例 (WeChat で Web ページを開く)_PHP チュートリアル

PHP を使用してページが WeChat で開かれたかどうかを判断する例 (WeChat で Web ページを開く)_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:31:49738ブラウズ

コードをコピーします コードは次のとおりです:

$user_agent = $_SERVER['HTTP_USER_AGENT'];
if (strpos($user_agent, 'MicroMessenger') === false) {
// WeChat 以外のブラウザ ブラウジングを無効にする
echo "HTTP/1.1 401 Unauthorized";
} else {
// WeChat ブラウザ、アクセスを許可する
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 (Gecko のような KHTML) バージョン/4.0 Mobile Safari/534.30 MicroMessenger/5.0.1.352",
"HTTP_USER_AGENT": "Mozilla/5.0 (互換性; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0) ; ARM; タッチ; NOKIA; Nokia 920T)",
"HTTP_USER_AGENT": "Mozilla/5.0 (iPhone; Mac OS X のような iPhone OS 6_1_3) AppleWebKit/536.26 (Gecko のような) 「、

WinPhone には MicroMessenger がまったくないので判断が不可能であることがわかりますが、実際のところ、userAgent の判断は非常に偽物なので、WeixinJSBridge が存在するかどうかを js を使用して判断し、その後 ajax を使用して php に実行する必要があると思います。 php はそれを検出し、実際のページ情報を返します。これは、「Loading...」を追加します。これは非常に調和的です。もちろん、ajax も騙すことができますが、userAgent の騙しと比較すると、少し面倒です。目的は、それが WeChat 側であるかどうかを検出することです。私は、コードがフィルタリングされることを嫌いますので、特定のコードは書きません

http://www.bkjia.com/PHPjc/761017.html

tru​​ehttp://www.bkjia.com/PHPjc/761017.html技術記事次のようにコードをコピーします: $user_agent = $_SERVER['HTTP_USER_AGENT']; if (strpos($user_agent, 'MicroMessenger') === false) { // WeChat 以外のブラウザは閲覧を禁止します echo "HTTP/1.1 401 Un. .
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。