[PHP-users 12066] Re: Mailbox に格納されたメールの、ヘッダと本文を分ける( サマリ?)

しょうなり [ml] php-users@php.gr.jp
Fri, 06 Dec 2002 12:37:32 +0900


しょうなりです。
mailboxの内部はよくわかりませんが、部分的に反応します。

S.Okazaki さんは書きました:
>split("(\n|\r\n|\r){2}",$line,2);
>なぜこの正規表現で動かないのかは分かりませんが、
>split("(\n\n|\r\r|\r\n\r\n)",$line,2);
>と書くとちゃんとヘッダーと本文に別れてくれるようになりました。
>正規表現の ^と$(〜から始まり…で終わる)と言うのを削除し、
>しなければ正しく動かないと言うのが疑問ですが…

改行コードが \r\n だった場合、探したい文字列 \r\n\r\n のうち、
\n\r\n とか、\r\n\r もヒットしてしまうから、
そのあたりであまり思わしくない結果になってしまうからではないでしょうか?


それの前のメールでは
>Subject: [PHP-users 12057] Re: Mailboxに格納されたメールの、ヘッダと本文を分ける
>From: "S.Okazaki" <okazaki@jp-hb.com>
>Date: Fri, 06 Dec 2002 10:19:03 +0900

>が、しかし
>list($head,$body)=split("^(\n|\r\n|\r?){2}$",$line);
>これで、head bodyに別れてくれません。

と書いてありましたが、
こちらの場合は、 ^\r?{2}$ という場合も含まれていて、
期待通りの結果が得られそうにないですね。


^ と $ を使うのでしたら、
list($head,$body)=split("^(\n|\r\n|\r)$",$line);
ではないでしょうか?
{2} は必要はないですよね。


-- 
print <<<SIGNATURE
	しょうなり@信州 肥田昌也
	Email:     shounari@webappli.jp
	HomePage:  http://www.webappli.jp/ => JSlayout 評価版
SIGNATURE;