[PHP-users 7067] hdmlコンテンツが出力されない

HOTTA Michihide php-users@php.gr.jp
Tue, 23 Apr 2002 12:23:01 +0900


堀田@諫早市です。

php-4.0.6 で動いていたスクリプトを 4.2.0 に移行していたら、hdml 
コンテンツが出力されない現象が発生して困っています。

[test.php]

<?php
header("Content-Type: text/x-hdml; charset=Shift_JIS\n");
print   "ABC<BR>\n";
?>

というスクリプトを、以下の手順で呼び出します。

hotta@star ~$ telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET /test.php HTTP/1.0

HTTP/1.1 200 OK
Date: Tue, 23 Apr 2002 02:53:02 GMT
Server: Apache/1.3.24 (Unix)  (Vine/Linux) mod_ssl/2.8.8 
 OpenSSL/0.9.6b PHP/4.3.0-dev
X-Powered-By: PHP/4.3.0-dev
Connection: close
Content-Type: text/x-hdml; charset=Shift_JIS

Connection closed by foreign host.

このように HTTP ヘッダのみ出力され、コンテンツ部分が出力されません。
エラーログにも何も記録されていません。php.ini は切り分けのために、
以下のものだけを指定しています。

[PHP]
output_buffering = 4096
output_handler = mb_output_handler
zlib.output_compression = Off
[mbstring]
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.detect_order = auto
mbstring.substitute_character = none;
;default_charset = Shift_JIS
mbstring.substitute_character = none
mbregex.encoding = EUC-JP

なお、output_buffering を無効にすると正しく出力されるようです。
上記の実行結果は php-4.3.0-dev になっていますが、php-4.2.0 でも
同様でした。

とりあえず関数で変換することで回避しようとは思いますが、なにか
調査のヒントをいただければと思います。