[PHP-dev 908]Re: mbstringのBUGではないでしょうか?
tec-info @ doevery.com
tec-info @ doevery.com
2003年 10月 6日 (月) 08:58:45 JST
中川さん
山下です。いろいろと試していただきまして、ありがとう
ございます。
T.P.S.Nakagawa さんは書きました:
>> sample code:::
>> $body="aaaa ....以下改行なしで文字をつなげる
>> mb_language("japanese");
>> mb_send_mail($to,$subject,$body);
>
> としたところ、これも再現できませんでした。
>
>私のほうでも、このあと山下さんと同じ環境をつくって
>同じ configure オプションでテストしてみますね。
こちらの方でもその後、いろいろ試しまして、回避できるように
なりました。
まず、文字をぶった切っているのは、ご指摘のとおり、mail()関数の
のようです。私の考察が足りなくて、mbstringではないかと早合点
してしまいました。失礼しました。
次に回避した方法ですが、そもそも、今回はWebからの入力をそのまま
メール関数に引き渡して、メール送信を行っていたのですが、
その際に改行が適切でなく、mail()ではBODY部分を長い1行だと解析
していたようです。
そこで、mb_send_mailに渡してやる前に、
$body=preg_replace("/\r/","\r\n",$body);
の1行をいれてやるとうまくいきました。
ちなみに、PHPの内部コードはEUC、Webの入力はSJISの環境でした。
本来はphp-usersのMLに投げる話題でしたが、私の思慮不足から
PHP-DEVの方に投げてしまいまして、失礼いたしました。
末尾ながら、お忙しい中、お時間を割いていただいた大勢の方に、
お礼申し上げます。
PHP-dev メーリングリストの案内