基礎から解る!PHP入門講座 プログラム入門に最適な言語、PHPを学ぼう

基礎から解る!PHP入門講座

プログラム入門に最適な言語、PHPを学ぼう      

 このサイトはPHPを独習する際に作成したスクリプトを基に、プログラム言語初心者のための入門講座として作成しました。PHPは初心者に親しみやすく、解りやすいプログラム言語です。これからプログラムを学ぶ人の参考になればと思います。


17-1 携帯とPCの判断

 携帯のサイトを作ることになったのですが、色々調べて驚きました。HTMLは使えないタグもあるし、StyleSheetも使えません。
 その上機種によって色々と制限があるのですね。

 携帯のサイトをPCで見ると細長くてかっこ悪いです。同じURLで携帯とPC両方が綺麗に表示されるように作りたいものです。

 そこで、PHPを使って、ユーザーが携帯なのかPCなのかを判断させ、2種類のHTMLを表示できるように作成します

ユーザー・エージェントを読み取る

 ユーザー・エージェントとはサイトを見る側のパソコンや携帯の情報です。パソコンか携帯か、Internet ExplorerかFirefoxなのかを知ることができます。
 $agent = $_SERVER['HTTP_USER_AGENT'];
 これで現在使っているPCの情報を得ると、

Internet Explorerの場合は
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; FDM; InfoPath.2)

Firefoxの場合は
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.1.4) Gecko/20070515 Dealio Toolbar 3.1 Firefox/2.0.0.4

という結果がでました。()の中の情報はよくわからないものもありますが、Mozilla/x.xの部分がわかればいいのです。


Mozilla/4.0の場合は
・Internet Explorer 6.0 又は 7.0/ Windows XP
・Sleipnir 2.5.8 / Windows XP
・Lunascape 3.6.5 / Windows XP

Mozilla/5.0の場合は
・Firefox 2.0.0.1 / Windows XP
・Firefox 2.0.0.1 / Mac OS X
・Netscape 7.1 / Windows XP
・Safari 419.3 / Mac OS X

Operaの場合は
・Opera 9.10 / Windows XP
 Windows NT 5.1という表示が()の中にありますがこれはOSの種類です。

9x 4.1 → Windows 98 又は Windows 98SE
9x 4.9 → Windows Millennium Edition
NT 5.0 → Windows 2000
NT 5.1 → Windows XP
NT 5.2 → Windows Server 2003 又は Windows XP Professional x64 Edition
NT 6.0 → Windows Vista

 そこで、これが携帯なら DoCoMo とか SoftBank とか Vodafone という言葉がでくるはずです。

正規表現で同じものを探す

 preg_match() は、ユーザー・エージエントの文字の中に同じモノがあるかを判断する正規表現の関数です。この名前の部分に各種携帯の名称を入れればパソコンか携帯の区別ができます。
 preg_match("/名前/",$_SERVER['HTTP_USER_AGENT']);
 正確にはpreg_match() はマッチした回数を返します。しかし、結果は0 回または 1 回です。 これは、最初にマッチした時点で検索を止めるためです。preg_match_all()は、終わりまで検索を続けます。

 下の場合DoCoMo と Vodafone とそれ以外の区別をしていることになります。
if(preg_match("/DoCoMo/",$_SERVER['HTTP_USER_AGENT'])){
 DoCoMoの場合のHTML
}elseif(preg_match("/Vodafone/",$_SERVER['HTTP_USER_AGENT'])){
 Vodafoneの場合のHTML
}else{
 上2種以外やPCの場合のHTML
}
実行の結果は ⇒こちらへどうぞ
スクリプトは ⇒こちらへどうぞ
2019/9
SUN MON TUE WED THU FRI SAT
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30      


 フォクすけ©2006 Mozilla Japan



制作:基礎から解るPHP入門講座 代表:FREEZE

Copyright © 2005/2/28 flzPHP.All Rights Riserved