![]() |
カレッヂ |
質問者 学
投稿日 2004/2/25(水) 12:05:39
初めまして。機種別アクセス制御のスクリプトを見つけたのですが、これはi-mode,vodafone,ezweb,PCに分けてるみたいで i-mode,vodafone,ezwebは「携帯」として一括りにして「携帯とPC」で判別するってことは可能でしょうか? if($host =~ /\.(ezweb|ido)\.ne\.jp$/ || $ENV{'HTTP_USER_AGENT'} =~ /UP\.Browser/) { $ua = 'e'; }elsif($host =~ /\.docomo\.ne\.jp$/ || $ENV{'HTTP_USER_AGENT'} =~ /DoCoMo/) { $ua = 'i'; }elsif($host =~ /\.jp-[ckqt]\.ne\.jp$/ || $host =~ /\.vodafone\.ne\.jp$/ || $ENV{'HTTP_USER_AGENT'} =~ /J\-PHONE/) { $ua = 'v'; }else { $ua = 'pc'; } あと、このスクリプトにある「|」と「||」はどういう意味ですか?私はandかorという意味だと思うのですが。
プロバイダ参照:i-mode,vodafone,ezweb |
回答者 しあわせのツボ
[削除]
投稿日 2004/2/25(水) 14:52:36
$uaを3つとも同じにしてしまえばいいという問題ではなく? そもそも、サンプルコードにはその後の処理も書いてあるでしょうから、 全て同じ所に飛ばすよう設定してしまえばいいだけで、 処理をまとめる意味を感じないのですが…。 もし「コードそのものを単純化したい」ということであれば、まず無理でしょう。 判別するには「ひとつずつキャリアを調べ、どれかに一致すれば携帯」しか方法がないので、 提示されているもののようにif文を並べるしかありません。 あと、調べればすぐにわかることですが、||はorです(厳密にはわずかに違うのですが、だいたい同じです)。 |
質問者 学
[削除]
投稿日 2004/2/25(水) 18:33:47
返事ありがとうございます。 おっしゃるとおり単純化する意味は全くないです。 $uaを一緒にすればいいのですが自分的に納得できず、もっと綺麗な書き方があればいいなと思い質問しました。 CGIについては無知なのでこれから時々質問させて頂きます。宜しくお願いします。今からCGI覚えようとするならPHPにしたほうがいいかな? |
このページは終了したので返信(回答)は書きこめません
Web裏技 |