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

解決済みの質問

PHP 携帯・PC 振り分け

こんにちはphpの振り分けについてご教授お願いします。
http://www.abc.jp/→PCサイト(/home/abc/www/の中身)
http://m.abc.jp/→mobileサイト(/home/abc/www/mobile/の中身)
とした場合、PCからmobileサイトにアクセスがあった場合pcサイトに飛ばし、携帯からPCサイトにアクセスがあった場合mobileサイトに飛ばすといったようなことをしたいのですが、下記の内容でdoctype宣言をおこなった場合どのように記述したらよろしいでしょうか?

下記の記述は別ファイルに記述し、index.phpまたは他の.phpに読み込まして各キャリアをdoctype宣言で振り分けしています。
下記の記述はネット上から見つけてきたものです。
http://www.kamitani79.com/2008/10/doctypephpssi.html

<?php
$agent=$_SERVER['HTTP_USER_AGENT'];
if(preg_match("/DoCoMo/", $agent)) {
print ("<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>\n");
print ("<!DOCTYPE html PUBLIC \"-//i-mode group (ja)//DTD XHTML i-XHTML(Locale/Ver.=ja/2.3) 1.0//EN\" \"i-xhtml_4ja_10.dtd\">\n");
print ("<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"ja\" xml:lang=\"ja\">\n");
print ("<head>\n");
print ("<meta http-equiv=\"Content-Type\" content=\"application/xhtml+xml; charset=Shift_JIS\" />");
} elseif(preg_match("/KDDI\-/", $agent)||preg_match("/UP\.Browser/", $agent)) {
print ("<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>\n");
print ("<!DOCTYPE html PUBLIC \"-//OPENWAVE//DTD XHTML 1.0//EN\" \"http://www.openwave.com/DTD/xhtml-basic.dtd\">\n");
print ("<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"ja\" xml:lang=\"ja\">\n");
print ("<head>\n");
print ("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\" />");
} elseif(preg_match("/J\-PHONE|Vodafone|MOT\-[CV]980|SoftBank/", $agent)) {
print ("<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>\n");
print ("<!DOCTYPE html PUBLIC \"-//J-PHONE//DTD XHTML Basic 1.0 Plus//EN\" \"xhtml-basic10-plus.dtd\">\n");
print ("<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"ja\" xml:lang=\"ja\">\n");
print ("<head>\n");
print ("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\" />");
} else {
print ("<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>\n");
print ("<!DOCTYPE html PUBLIC \"-//WAPFORUM//DTD XHTML Mobile 1.0//EN\" \"http://www.wapforum.org/DTD/xhtml-mobile10.dtd\">\n");
print ("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"ja\">\n");
print ("<head>\n");
print ("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\" />");
}
?>

ご教授お願いいたします。

投稿日時 - 2009-10-07 10:39:19

QNo.5348313

すぐに回答ほしいです

質問者が選んだベストアンサー

PHPでリダイレクト(飛ばす)させるならDOCTYPEとは関係ないような。
以下のような(内容の)記述を先に書けば振り分けできると思いますが。

if ($url === $mobileUrl && $agent->isPc) {
 header('Location: ' . $pcUrl);
 exit;
} else if ($url === $pcUrl && $agent->isMobile) {
 header('Location: ' . $mobileUrl);
 exit;
}

投稿日時 - 2009-10-07 18:18:03

補足

できました。
有難う御座います。

投稿日時 - 2009-10-07 21:33:43

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

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

回答(1)

あなたにオススメの質問