勉強したことのメモ

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

  関連記事

PHPにて自動でファイルを呼び出す(auto_prepend_file)

設定ファイルとかをinclude('config.php')みたいに、 いちいち ...

PHPで多次元連想配列のキーを指定してソート

やりたかった事は、 ・多次元配列があってcodeというキーでソートしたい という ...

incファイルとかtplファイルとか

初めて見るサーバーのファイルを見ていると incファイルとかtplファイルとか見 ...

CSVファイルを使って郵便番号から住所を抽出する

■ソース <? error_reporting(E_ALL & ~ ...

PHPとSQLiteでi-mobileのデータをグラフ化

i-mobileでクリック保証のアフィリエイトだけど数値が並んでいるだけでグラフ ...

PHPでフォームの禁止ワード制限

掲示板等で本文を送信する際に、禁止ワードが含まれていないかチェックするプログラム ...

PHPで指定月の月末日を取得

今月の、だったらdate('t')でいくけど指定月の場合は どうしたらいいのか分 ...

PukiWikiでバックアップのスケジュール化

PukiWikiでバックアップを取りたかった。調べたらディレクトリごと保存すれば ...

PHPでソーシャル(SNS)ログインする方法

「facebook / twitter / Googleアカウントでログインする ...

Ajaxのクロスドメイン

クロスドメイン対策にて色々あるみたいだけど 簡単そうで尚且つ実践でも使えたのでメ ...