• 締切済み

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

みんなの回答

  • foreach
  • ベストアンサー率51% (43/84)
回答No.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 } じゃないかな? 試してないので間違えてるかもしれません。参考程度でおねがいします。

関連するQ&A