「そんなのできたら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の実体が文字列ばっかりになっちゃって何だか分からなくなること多いこと。タグが入れ子になってきたらよくミスっちゃうことも多いはず。と、いうわけで、ずっとクライアントサイドに振るべきだと思われてた仕事も、サーバ側に振れる仕事は振っちゃってもいいのかな、と思いました。
- Newer: 「Web2.0と著作権の本質」を聴講してきました
- Older: 変数の存在を確認する方法と速度比較(その2)
Google Adsense
Social bookmark comment : 0
No comment.
Comment : 0
Trackback : 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
2007/12/13 (Thu)