勉強したことのメモ

webプログラマ見習いが勉強したことのメモ。

ユーザーエージェントからブラウザ名、バージョン、OS名判別

      2014/07/03

/***判別側***/
//ブラウザ情報の取得
function browser_distinction($agent = '') {
if ($pos = strpos($agent, 'MSIE')) {
$browser_name = 'MSIE';
$browser_ver = substr($agent, $pos + 5, strpos($agent, ';', $pos) - $pos - 5);
} else if ($pos = strpos($agent, 'Firefox')) {
$browser_name = 'Firefox';
$browser_ver = substr($agent, $pos + 8, strlen($agent) - $pos - 8);
} else if ($pos = strpos($agent, 'Safari')) {
if ($pos = strpos($agent, 'Chrome')) {
$browser_name = 'Chrome';
$browser_ver = substr($agent, $pos + 7, strpos($agent, ' ', $pos) - $pos - 7);
} else {
$browser_name = 'Safari';
$pos = strpos($agent, 'Version');
$browser_ver = substr($agent, $pos + 8, strpos($agent, ' ', $pos) - $pos - 8);
}
} else if (ereg('Opera', $agent)) {
$browser_name = 'Opera';
$pos = strpos($agent, 'Version');
$browser_ver = substr($agent, $pos + 8, strlen($agent) - $pos - 8);
} else {
$browser_name = 'Unknown';
$browser_ver = 'Unknown';
}
return array($browser_name, $browser_ver);
}
//OS情報の取得
function os_distinction($agent = '') {
if (ereg('Windows NT 6.0', $agent)) {
$os_name = "Windows Vista";
} else if (ereg('Windows NT 5.1', $agent)) {
$os_name = "Windows XP";
} else if (ereg('Windows 98', $agent)) {
$os_name = "Windows 98";
} else if (ereg('Macintosh', $agent)) {
$os_name = "Macintosh";
} else if (ereg('Windows NT 6.1', $agent)) {
$os_name = "Windows 7";
} else if (ereg('Windows NT 6.1', $agent)) {
$os_name = "Windows 8";
}
return $os_name;
}

/***受け取り側***/

list($browser_name, $browser_ver) = browser_distinction($agent);

$os_name = os_distinction($agent)

 - PHP

  関連記事

images
Fatal error: [] operator not supported for stringsの対処

Fatal error: [] operator not supported f ...

msyql-image
MySQLiでFOUND_ROWS(全件数取得)

MySQLiでFOUND_ROWS(全件数取得)。 $sql = ' SELEC ...

images
$_SERVER['PHP_SELF']に脆弱性あり

formのaction属性とかページングのリンクとかで、 <form ac ...

msyql-image
MySQLiでDELETE文

MySQLiでDELETE文 ■ソース $mysqli = new mysqli ...

images
PHPで数値チェック

ページング情報だったりフォーム情報だったりで、 数値かどうかをチェックしたかった ...

images
PHPの日付・時刻関連

使えそうなものをまとめてメモ。 【関数】 ----------- ■date 日 ...

images
PHPで簡単にCSVファイルの生成

簡単にデータ並べるだけのCSVファイル生成。 file_put_contensで ...

images
特定のサイトからのリクエストのみ受け付けて処理する方法

指定したサイトからのリクエストのみ受け付けて処理したいという状況があった。その他 ...

images
includeした内容を変数に入れる

includeした内容を変数に入れる際に嵌ったのでメモ。 下記サイト様を参考にさ ...

msyql-image
MySQLでカンマ区切りの検索

カンマ区切りで入っているデータを検索する場合に ピンポイントな関数があったのでメ ...