こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

PHPでのガラケー、PC、iPhone振り分け

レッツPHPさんの写メールBBSを使用しています。
iPhoneページを作成し、mailbbs.phpで振り分け設定を試みたのですが
どれだけやってもどうにも上手くいきません。

スマートフォンのページ名をmailbbs_smart.htmlとし、
(他のPC用、携帯用ではデフォルトでmailbbs_pc.html、mailbbs_i.htmlとなっていました)

振り分け設定では

mailbbs.phpに

$ua = explode("/", $_SERVER['HTTP_USER_AGENT']);
if (strstr($ua[0], "DoCoMo")) {
$env = "i"; // DoCoMo
} elseif (preg_match("#^UP.Browser|KDDI#i", $ua[0])) {
$env = "i"; // au
} elseif (preg_match("#^J-PHONE|Vodafone|SoftBank|MOT#i", $ua[0])) {
$env = "i"; // Vodafone
} elseif (preg_match($ua[0] , "iPhone")) {
$env = "smart"; //iPhone
}
と記述しました。

他にeregなどでも設定したのですが大抵
・ページが表示されない

・PC用のデザインで表示される

という風になってしまいます。

htmltamplate.incとの関連付けが上手くいってないからでしょうか。
当方PHPに関してあまり詳しくありません。

レッツPHPさんの写メールBBSを使用した方いましたら、
是非ご教授お願いします。

レッツPHPさんのHP
http://php.s3.to/bbs/bbs7.php

投稿日時 - 2011-06-15 02:12:54

QNo.6810421

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

突っ込みどころが2点ほどありますが

> $ua = explode("/", $_SERVER['HTTP_USER_AGENT']);

これ要らないと思います。
USER_AGENTに必ずしもスラッシュが含まれてないとワーニングが出ます。


> } elseif (preg_match($ua[0] , "iPhone")) {

これはレッツPHPのソースに含まれてないので貴方が追記した正規表現だと思いますが間違えてます。

$ua = $_SERVER['HTTP_USER_AGENT'];
if (strstr($ua, "DoCoMo")) {
$env = "i"; // DoCoMo
} elseif (preg_match("#^UP.Browser|KDDI#i", $ua)) {
$env = "i"; // au
} elseif (preg_match("#^J-PHONE|Vodafone|SoftBank|MOT#i", $ua)) {
$env = "i"; // Vodafone
} elseif (preg_match("#iPhone#i", $ua)) {
$env = "smart"; //iPhone
}

じゃないかな?
試してないので間違えてるかもしれません。参考程度でおねがいします。

投稿日時 - 2011-06-19 03:37:25

あなたにオススメの質問