2012年7月3日火曜日

ユーザエージェントを判別する(FuelPHP)

これも最近少しずつさわってるFuelPHPですが
ドキュメント見てたら Agent とあったんで気になってさわってみました。

PHPでユーザエージェントを判別する場合
$agent = $_SERVER['HTTP_USER_AGENT'];

これでユーザエージェントを取得することができます。
しかし、これから各ブラウザ、またデバイスを仕分けるのはなかなか面倒な作業だったと思いますが、これが一発で判別できます。
// 従来のユーザエージェント取得
$data['ua'] = $_SERVER['HTTP_USER_AGENT'];

// ブラウザ名
$data['browser'] = Agent::browser();
// バージョン
$data['version'] = Agent::version();
// プラットフォーム名
$data['platform'] = Agent::platform();
// モバイル判別
$data['mobile'] = 'false';
if (Agent::is_mobiledevice())
{
    $data['mobile'] = 'true';
}

// クローラ判別
$data['robot'] = 'false';
if (Agent::is_robot())
{
    $data['robot'] = 'true';
}

これをViewに渡して表示すると
PC画面

 iPod touch

iPad

上のコードではそれぞれ個別にデータを情報を取得しましたが一発ですべてのデータも取得できます。
// ブラウザのすべてのプロパティを取得
$agent = Agent::properties();

$data['browser'] = $agent['browser'];
$data['version'] = $agent['version'];
$data['platform'] = $agent['platform'];
$data['mobile'] = 'false';
if ($agent['ismobiledevice'])
{
    $data['mobile'] = 'true';
}
$data['robot'] = 'false';
if ($agent['crawler'])
{
    $data['robot'] = 'true';
}

これでしても結果は同じです。
ほかにもあるのでその辺りはマニュアルを参照してください。
http://docs.fuelphp.com/classes/agent/usage.html

※2012.7.4
iPadって mobile ?て聞かれたんで試してみました。
iPadは mobile です!


0 件のコメント:

コメントを投稿