Ezwebかどうかを判断する際に、UserAgentに’UP.Browser’の文字列があるか無いかで判断するのが一般的だと思います。
function is_ezweb(){ return strpos($_SERVER['HTTP_USER_AGENT'], 'UP.Browser') !== false; }
これはこれで間違いないんですが、単体でチェックする時には注意が必要です。
個人的に、Ezwebかどうか判断する前にSoftbank機種かをチェックしておかないといけないと思ってます。
理由は忌まわしきVodafoneの804SH,802SHのせいです。
追記) 他にもありましたm(_ _)m
2009年3月現在:903SH,902SH,804SH,802SH,802N,703SHf,703SH,703Nの8個
docomoにも過去、’UP.Browser’の文字列がある機種があった模様。
PANASONICのPHSの[P-PAT]と[D2]の2機種。(WAPブラウザだったらしい)
しかし、正確なUseragentはおろか発売時期すら確認できず。
完全に無視してよい機種だと思います。
(追記ここまで)
http://creation.mb.softbank.jp/terminal/index.html
[804SH]
Vodafone/1.0/V804SH/SHJ001[/Serial] Browser/UP.Browser/7.0.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.1 Ext-J-Profile/JSCL-1.3.2 Ext-V-Profile/VSCL-2.0.0
[802SH]
Vodafone/1.0/V802SH/SHJ001[/Serial] Browser/UP.Browser/7.0.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.1 Ext-J-Profile/JSCL-1.2.2 Ext-V-Profile/VSCL-2.0.0
そう、VodafoneなのにUseragentに‘UP.Browser’の文字列が入っちゃってるのです。
(これはVodafoneの大罪だと当時対応作業したときに本当に思った)
この機種でアクセスされた時、Ezwebと認識されちゃいます。
もうSoftbankも’UP.Browser’なんてUseragentは入れてないですし、この機種自体も古いですけど、一応気をつけておかないとなーと。
なのでこんな感じでしょうか。
function is_ezweb(){ if( is_softbank() ) return false; //先にSoftbank,Vodafoneじゃないかチェック return strpos($_SERVER['HTTP_USER_AGENT'], 'UP.Browser') !== false; }
後、携帯かPCかどうか判別するのは順番も大事だと思ってます。
(全部のキャリアかどうかチェックして、違ってたらPC、みたいな判別の時とか)
大雑把にこんな感じでしょうか。
docomoかどうかチェック
↓
J-PHONEかどうかチェック(もういらないか)
Vodafoneかどうかチェック
Softbankかどうかチェック
(→iPhone、iPod Touchかどうかチェック)
↓
Ezwebかどうかチェック
↓
E-Mobileかチェック
↓
willcomかチェック
↓
それ以外はPC
昔から携帯サイトに携わってた人は、Ezwebの前にVodafoneかどうかをチェックしとかないと不安の人って多分いると思う。(僕だけ??)
なんでこんな記事を書いたかといと、ke-tai.org > Blog Archive > 携帯からGoogleMapで指定の場所を表示する方法(住所指定方式)で知ったのですが、最近福岡でもCakePHP勉強会@福岡で盛り上がったPHPのフレームワークのCakePHP向けに、携帯向けの便利なライブラリ「Ktai Library for CakePHP1.2」が公開されてました(嬉
「こんなの欲しい!」
という機能が準備されてて、また今後もVer0.0.2で「機種判別」など便利機能が搭載されるようで、
とても期待度大です!
で、そのコードを見させてもらってちょっとだけ気になっちゃった事だったんです。
ちなみに自分自身はまだCakePHPは全然触れていないです(オイ
PHPも簡単なのしか書けません。(classも書けないヘタレです。。。)
プログラム自体、ダメ夫な自分では的外れな事かもしれませんが、何かの参考になればと思って書いてみました。
あ、あと、Ezwebの絵文字の事も少し。
Ezwebのimgタグの絵文字指定方法はとても簡単です。
<img localsrc="[絵文字NO]or[絵文字name]" />
とすればいいので、この方法で採用してる絵文字ライブラリも多いと思います。
でもこれだとWebデザイナーさんは困るケースがあるのです。
それは絵文字のサイズが中(medium)で固定されてしまうこと。
<span style="font-size:xx-small"><img localsrc="1" /></span> <span style="font-size:xx-large"><img localsrc="1" /></span>
としても画像として扱われるため文字サイズが変わってくれず、デザインした時、とてもいびつになってしまいがちです。
なので、個人的にはEzwebの絵文字指定はフォントサイズの大小に応じて絵文字サイズも変更できる、Shift_JISのバイナリコードの指定だとモバイルデザイナーさん?も喜ばれると思います。
近いうちにau好きなモバイルデザイナー向けの絵文字変換ライブラリを公開予定です。
(絵文字の画像関係の著作権とか配布とかの問題をチェック中です)