みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

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

解決済みの質問

PHPでheader情報がうまく表示できない

ドコモ対応でXHTMLのヘッダー情報がうまく送れません。
PCからのテストで
header('Content-Type: application/xhtml+xml');
をコード挿入すし、サイト表示の確認すると「ファイルのダウンロード
」ダイアログがでます。
header('Content-Type: application/xhtml+xml');
を入れずにテストするとダイアログはでません。

・display.phpがメインページであくまでもskin.htmlをインクルードして置換しecho表示する感じなのですが・・・・・
困っています。助けて下さい。

skin.html
-----------------
<html>
<body>
<head>
<!--%title-->
</head>
<body>
コンテンツ
</body>
</html>
-----------------

test.php
--------------------------------------------------------------------------------------
変数定義は省略


$html = file_get_contents($temp);

$agent = $_SERVER['HTTP_USER_AGENT'];
if(preg_match("/^DoCoMo/i", $agent)){
$html = str_replace( "<!--%title-->", $docomo, $html);
header('Content-Type: application/xhtml+xml');
echo "$html";
}

elseif(preg_match("/^(J\-PHONE|Vodafone|MOT\-[CV]|SoftBank)/i", $agent)){
$html = str_replace( "<!--%title-->", $softbank, $html);
header('Content-Type: application/xhtml+xml');
echo "$html";
}

elseif(preg_match("/^KDDI\-/i", $agent) || preg_match("/UP\.Browser/i", $agent)){
$html = str_replace( "<!--%title-->", $au, $html);
header('Content-Type: application/xhtml+xml');
echo "$html";
}

else{
$html = str_replace( "<!--%title-->", $other, $html);
header('Content-Type: application/xhtml+xml');
echo preg_replace('/{.*?}/', '', $html);
--------------------------------------------------------------------------------------


display.php
------------------------------------------
<?php
$temp = "./skin.html";
require_once('./test.php');
?>

投稿日時 - 2009-01-27 14:34:02

QNo.4665412

困ってます

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

あと、'Content-Type: application/xhtml+xml' はdocomoの時だけ必要で、auは無し、SoftBankは'Content-Type: text/html; charset=Shift_JIS'となります。

投稿日時 - 2009-01-27 14:49:06

補足

そうだったんですか?
PHPでドコモXHTMLで携帯サイト作成している人は、そうなんですね!

投稿日時 - 2009-01-27 17:42:21

ANo.3

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

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

回答(3)

ANo.2

PCブラウザに 'Content-Type: application/xhtml+xml' を送るとプログラムのダウンロードとして認識されますので test.php の最後の else の時はヘッダーを出さないようにする必要があると思います。

投稿日時 - 2009-01-27 14:46:17

ANo.1

IEのバグというか仕様というか、まぁそうしかならないので
ユーザーエージェントで場合分けをしてみては?

投稿日時 - 2009-01-27 14:46:14

あなたにオススメの質問