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

S.Okazaki php-users@php.gr.jp
Fri, 06 Dec 2002 21:35:03 +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 もヒットしてしまうから、
> そのあたりであまり思わしくない結果になってしまうからではないでしょうか?

申し訳ありません。私の出した情報が足りませんでした。
> 動かない
というのは、\n\r\n等もヒットするのではなく、何もヒットしませんでした

> >が、しかし
> >list($head,$body)=split("^(\n|\r\n|\r?){2}$",$line);
> >これで、head bodyに別れてくれません。
> 
> と書いてありましたが、
> こちらの場合は、 ^\r?{2}$ という場合も含まれていて、
> 期待通りの結果が得られそうにないですね。
> 
> 
> ^ と $ を使うのでしたら、
> list($head,$body)=split("^(\n|\r\n|\r)$",$line);
> ではないでしょうか?
> {2} は必要はないですよね。

なるほど…正規表現って難しいですね(^^;
大変参考になりました。
しょうなり様には、以前も大変お世話になりました。
ありがとうございました。


/_/_/_/_/_/_/_/_/_/_/_/_/_/
Japan Human Base 
Sotaro Okazaki
Email : okazaki@jp-hb.com
/_/_/_/_/_/_/_/_/_/_/_/_/_/