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

HOTTA Michihide php-users@php.gr.jp
Wed, 24 Apr 2002 12:08:24 +0900


堀田@諫早市です。

On Tue, 23 Apr 2002 21:57:37 +0900 
Subject [PHP-users 7103] Re: hdmlコンテンツが出力されない
Yasuo Ohgaki <yohgaki@yahoo.co.jp> wrote:

> > ところが、4.2.0 で検証してみますと、全く出力されないというバグは
> > 解消したものの、本来の目的である mb_output_handlerによるコード変
> > 換が動作していないようです(これが他の問題?)。header()をコメン
> > トアウトするとちゃんと動作します。
> 
> この不具合を直した時に、この事ににも気が付いたのですが4.1.xでは
> コード変換していたのでしょうか?(後でソースを見ます)
> 
> Content-Typeヘッダを送信するとコンバートしなくなるように書い
> てあります。変換したい場合は、ini_set()でContent-Typeを指定
> すると動作するはずです。

後述のパッチが当たったソースで、以下のスクリプトが正常に動くこと
を確認しました。迅速な対応に感謝します。

<?php
$PHP_VERSION=PHP_VERSION;
if ($PHP_VERSION < "4.2.0")
    header("Content-Type: text/x-hdml; charset=Shift_JIS\n");
else
    ini_set('default_mimetype', 'text/x-hdml');
print   <<<__EOD__
<HDML VERSION=3.0 MARKABLE=TRUE TTL=0>
<DISPLAY NAME=test>
PHP_VERSION=$PHP_VERSION<BR>
あいうえおかきくけこ<BR>
たちつてとなにぬねの<BR>
ABCDEFGHIJ<BR>
</DISPLAY>
</HDML>
__EOD__;
?>

> PHP 4.2.0-devにもコミットしておいたので正式なパッチは
> http://cvs.php.net/diff.php/php4/ext/mbstring/mbstring.c?r1=1.48.2.4&r2=1.48.2.5&ty=u&Horde=2acfeb96b9551fec42c1058dd6189e8d
> からどうぞ。

これですが、typo があったようです。以下、パッチのパッチです(^^;

--- mbstring.c.orig Wed Apr 24 09:35:01 2002
+++ mbstring.c  Wed Apr 24 09:20:51 2002
@@ -1473,7 +1473,7 @@
            MBSTRG(outconv) = NULL;
        }
        if (encoding == mbfl_no_encoding_pass) {
-           RETRUN_STRINGL(arg_string, arg_string_len, 1);
+           RETURN_STRINGL(arg_string, arg_string_len, 1);
        }
        /* if content-type is not yet set, set it and activate the converter */
        if (SG(sapi_headers).send_default_content_type ) {

-- 
堀田 倫英 <hotta@net-newbie.com> <http://www.net-newbie.com>