携帯機種の振り分けが↓のようなので・・・
$mode="";
$ua=$ENV{'HTTP_USER_AGENT'};
if($ua=~ /DoCoMo/){$mode=$imode;}
elsif($ua=~ /J-PHONE\/2/){$mode=$jphone;}
elsif($ua=~ /J-PHONE\/[3-9]/){$mode=$jphone2;}
elsif($ua=~ /Vodafone/){$mode=$vodafone;}
elsif($ua=~ /SoftBank/){$mode=$softbank;}
elsif($ua=~ /ASTEL/){$mode=$doti;}
elsif(index($ua,"UP.Browser")==0){$mode=$ezweb;}
elsif(index($ua,"UP.Browser") > 0){$mode=$ezweb2;}
if($mode eq ""){$mode=$etc;}
perlの中にあらかじめ、「携帯かそれともPCか」がわかれば、同じスクリプト内で携帯用とPC用の画像など、表示させるものを分ける事ができるなと気がついた。
if($ua=~ /DoCoMo/ || $ua=~ /J-PHONE\/2/ ||・・・続く){$mode='1';}
else {$mode='';}
にしておけば、携帯で見ているときは$mode=1、PCで見ているときは$mode=なしになるので
# 携帯ならmobilelogo.gifをPCならpclogo.gifを表示
if($mode eq '1') { print"<img src=\"mobilelogo.gif\">\n"; }
else { print"<img src=\"pclogo.gif\">\n"; }
って事になる。
PC用のロゴがでかいので、携帯は軽いロゴ使いたかったし、携帯ではずらずら表示させたくない部分も if($mode ne '1') で書けばよいんだな♪って言う今更なメモ。
if($imode eq '1') {
$imodebr = '<br>'; $imodehr = '<hr>';
$imodefont = '<font size ='-1'>";
$imodefend = '</font>';
}
なんて事を最初に書いておき・・・
print "今日は良い天気なんだけど、$imodebr明日は晴れるかな? $imodehr$imodefont明日の降水確率は30%$imodefend; }~
なんて書き方をして、PCではそのまま表示したいんだけど、携帯の時だけ改行やフォントサイズを変えたり、区切り線を入れたりしているというせこいメモ。
$pctag ←PCの時に表示させたいタグ
$imtag ←携帯の時に表示させたいタグ
が入っているデータファイルから、
PCの時は$pctagがなければ、携帯専用データなので処理を飛ばす
携帯の時に$imtagがあれば、携帯で利用できるタグという事で、$imtagを$pctagとして以後処理、
$imtagがなければ、PC専用のデータなので処理を飛ばす
while (<IN>) {
local($no,$sitename,$pctag,$imtag,$comment,$line) = split(/<>/);
if ( $imode ne '1' && $pctag eq '') { next; }
if ( $imode eq '1' ) { if ($imtag ne '') { $pctag = $imtag; } else { next; }}
・・・・
}
で、1つのデータファイル、1つのcgiで、PCから見たときと携帯から見た時との表示されるデータが変わる。
両方でツカエルタグはPCでも携帯でも表示できる。
あ〜できてよかった。PC用と携帯用と1つずつ動かして登録するのかと思ってぞっとしていたので・・・というメモ。
| きつねグッズセレクト きつねがいっぱい もっと「きつね」 やっぱり「キツネ」 それでも「狐」 英語じゃ「フォックス」 |
| きつね♪メモWiki XOOPSメモ Perlメモ PHPメモ その他のメモ 今日の作業記 XOOPS情報RSS |

| きつね♪ 12月7日 |
![]() |
| random|ranking |