PHPでユーザーエージェントを取得する

ユーザーエージェント(User Agent)は、ページ閲覧者がページを見るのに使っているソフトウェアを特定する情報です。使っている端末・ブラウザによって、ユーザーエージェントは異なります。

アクセス解析や端末・ブラウザ毎の表示切り替えなどに使用されます。

$_SERVER変数からユーザーエージェントを取得する

ユーザーエージェントはPHPのスーパーグローバル変数$_SERVER['HTTP_USER_AGENT']にあります。

サンプルコード

echo $_SERVER['HTTP_USER_AGENT'];

実行結果

Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1

検索エンジンのクローラを判別する

また、ユーザーエージェントを調べることで、ブラウザーだけでなく検索エンジンのクローラも判別可能になります。

例えばGoogleのクローラは次のようなユーザーエージェントになります。(随時更新されていますので、決まっているわけではありません)

Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Safari/537.36

ユーザーエージェントを使う時の注意点

ユーザーエージェントは、閲覧者が簡単に偽装することができます。そのため、偽装されることを前提としてサービスを作る必要があります。

アダプティブデザインとユーザーエージェント

現在は1つのHTMLを画面の大きさに合わせて変化させるレスポンシブ・デザインが普及しています。ですが、例えばフィーチャーフォンに対応するには、ユーザーエージェント別にHTMLを切り替えることが必要となります。

アダプティブデザインへの応用

このような、環境やコンテクスト毎に合わせたデザインを「アダプティブ・デザイン」と呼びます。

参考:レスポンシブ? アダプティブ? デザイナーにとってのベストな選択肢とは

まず、今回紹介したユーザーエージェントでレスポンシブ・デザインが利用可能かどうかを判断し、そうでないフィーチャーフォンの場合は専用のHTMLでページを作るといった対応をすることで、マルチデバイス向けのサイトを作ることができます。


イベント