※ ChatGPTを利用し、要約された質問です(原文:headerのContent-Typeの出力制御)
headerのContent-Typeの出力制御
このQ&Aのポイント
PHPの問題なのか、Apacheの問題なのか分かりかねましたので、とりあえずPHPのカテゴリーに質問させて頂きます。
mmfファイルにアクセスしているように見せかけてPHPを実行するプログラムにおいて、Headerの出力として"Content-Type:application/x-smaf" だけ出力したいのだが、"Content-Type: text/html; charset=Shift_JIS" も同時に出力されてしまう。
上記の件につきまして、対応方法をご存知の方がいらっしゃいましたら宜しくお願いいたします。
お世話になります。
PHPの問題なのか、Apacheの問題なのか分かりかねましたので、とりあえずPHPのカテゴリーに質問させて頂きます。
■問題点
mmfファイルにアクセスしているように見せかけてPHPを実行するプログラムにおいて、Headerの出力として"Content-Type:application/x-smaf" だけ出力したいのだが、"Content-Type: text/html; charset=Shift_JIS" も同時に出力されてしまう。
■出力されるHeader(一部修正しています)
HTTP/1.1 200 OK
Date: Wed, 25 May 2005 01:46:37 GMT
Server: Apache/1.3.27 (Unix)
X-Powered-By: PHP/4.3.6
Accept-Ranges: bytes
Content-Type:application/x-smaf
Content-length:11212
Connection: close
Content-Type: text/html; charset=Shift_JIS
(↑この一行が邪魔)
■PHPプログラム
拡張子mmf(smafファイル)でphpを実行し、smafファイルを出力する。
<?php
$melody_file = "hoge.mmf";
$melody_filesize = @filesize( $melody_file );
$fd = fopen ($melody_file, "rb");
$contents = fread ($fd, $melody_filesize );
fclose ($fd);
header("Content-Type:application/x-smaf\nContent-length:${melody_filesize}\n\n");
echo $contents;
?>
■Apache設定
AddType application/x-httpd-php .php .php4 .php3 .phtml .mmf
■動作環境
ReadHat7.2
Apache 1.3.27
PHP 4.3.6
上記の件につきまして、対応方法をご存知の方がいらっしゃいましたら宜しくお願いいたします。
お礼
早速のご回答有難うございました。 原因はご指摘頂いた改行ではなく、余計なヘッダー出力が混ざっていた為でした。 自分の手元のソースを見直したら "Accept-Ranges: bytes\n" が入っていました。 確か実mmfデータを単純にダウンロードした場合のヘッダーを見て真似して入れておいた部分だったのですが、これを削除したら余計なContent-Typeは削除されました。 確認不足で質問してしまい申し訳ございませんでした。 単純なこちらのミスにも関わらず、ご回答いただき有難うございました。