サーバサイドでOS・ブラウザ判定

  • 2007年12月13日 02:03
  • php

「そんなのできたらOS毎に分けたHTMLを出力するとき、無駄なdocument.write()だらけにならずに便利なのに、、、」と思ったのですが、よくよく考えたらUserAgent見たらできそう。と、いうわけでPHPで書いてみました。

<?php
$ua = $_SERVER['HTTP_USER_AGENT'];
if(eregi('Windows', $ua)){
	echo('Windows!');
} else {
	echo('Not Windows!');
}
?>

超簡単。UA送ってくれてたらブラウザ判定もいけます。

もちろん「UA偽装されたら、、」とかな話もあるけど、JSに頼らず"そこそこの信頼度"で知れることも大事かな、と。あと、サーバサイドで判定していたらSmartyなんかのテンプレートシステムでコード分けがものすごくシンプルになります。

{if $os=='win'}
<h1>For Windows User</h1>
{/if}

こんな感じでtplファイルに書けます。これをクライアントサイドでやると

if(os=='win'){
 document.write('<h1>For Windows User</h1>');
}

こんな感じですかね。クライアントサイドでの判別方法の実装側の問題点として、ソース内のHTMLの実体が文字列ばっかりになっちゃって何だか分からなくなること多いこと。タグが入れ子になってきたらよくミスっちゃうことも多いはず。と、いうわけで、ずっとクライアントサイドに振るべきだと思われてた仕事も、サーバ側に振れる仕事は振っちゃってもいいのかな、と思いました。

関連広告

Trackbacks:0

TrackBack URL for this entry
http://blog.katsuma.tv/mt-tb.cgi/108
Listed below are links to weblogs that reference
サーバサイドでOS・ブラウザ判定 from blog.katsuma.tv

Home > php > サーバサイドでOS・ブラウザ判定

Search
Feeds

Return to page top