今回はPHPでユーザーのユーザーエージェントを取得する方法です。
ここで言うユーザーエージェントは、WEBサイトに訪れたユーザーの端末やブラウザの情報のことです。
iPhoneかAndroidかの判定を利用してスマホからかPCからかを判定したり、GoogleやBingのクローラーを判定したりできます。
PHPでユーザーエージェントを取得する方法
PHPでユーザーエージェントを取得するには、スーパーグローバル変数の $_SERVER に含まれる HTTP_USER_AGENT を取得します。
$_SERVER は配列になっているので、上のサンプルコードのようにキーにHTTP_USER_AGENTを指定するだけです。
1 |
$ua = $_SERVER['HTTP_USER_AGENT']; |
簡単ですね!
ユーザーエージェントを使ってスマホ判定する方法
僕のiPhoneで自分のサイトにアクセスしてみました。
1 |
Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/71.0.3578.89 Mobile/15E148 Safari/605.1 |
ごちゃごちゃと色々書かれていますね。
この中に”iPhone”というキーワードが含まれていればiPhoneからのアクセスと判定します。
Android端末からのアクセスの場合は”Android”が含まれています。
iPadなら”iPad”で、iPodなら”iPod”になります。
文字列の中から特定の文字列を検索するにはstrpos()を使います。
スマホの判定は以下のようなコードになります。
1 2 3 4 5 6 7 8 |
// ユーザーエージェント取得 $ua = $_SERVER['HTTP_USER_AGENT']; if (strpos($ua, 'iPhone') !== false || strpos($ua, 'Android') !== false) { echo "スマホだよ"; } else { echo "スマホじゃないよ"; } |
iPadやiPodを含めるかは設計者かお客さんに確認してください。
Googleのクローラー判定
GoogleやBingなどのクローラーかどうかの判定もできます。
GoogleのクローラーのUAはこちらのページで確認できます。
“Googlebot”が含まれてたらGoogleの検索インデックス用クローラーでよさそうです。
Bingの場合は”bingbot”ですね。
クローラーのアクセスの場合Googleアナリティクスにもカウントされないので分かりにくいですが、全てのアクセスに対しUAを吐き出すログを作成するとかなりクローラーのアクセスがあります(笑)
GoogleやBingなどならいいですが、ロシアのわけ分からん検索サイトやガチで悪質な中国のクローラーなんかは拒否しちゃってもいいかもれないですね。
まとめ
ユーザーエージェント(UA)は、ユーザーのデバイスやブラウザの情報。
特定のワードが含まれているかどうかで、端末やクローラーなどの判定ができる。
スマホ対策だけでなく、悪質なアクセスのブロックにも役立てれます。
コメントを残す