[PHP-users 6608] Re: メールTo ヘッダ中の複数アドレス検知

Naomasa Numajiri php-users@php.gr.jp
Tue, 2 Apr 2002 15:28:14 +0900


こんにちは

| 困っていることは、複数のアドレスがToヘッダにかかれていた場合、","で区切る
| と思うのですが、単に","でsplit()をかけると送信者名の"?"の部分中に","文字
| もしくは相当するコードが含まれていた場合でも分割してしまいます。

こういうのはどうですか?
------------------------------------------------------ begin
<?php
$str = "hoge1,hoge2,hoge3,";

for( $count = 1; ereg('^([^,]*),(.*)$',$str,$match); $count++ )
{
        print "field[".$count."] => ".$match[1]."\n";
        $str = $match[2];
}
?>
------------------------------------------------------- end
正規表現をきっちり書いていないので、最後のフィールドが抜き取れませんが、
発想はお分かりになると思います。
(splitするのではなく、1項目ずつ抜き出す感じ。)

参考文献(Perlの本で恐縮ですが・・・(^^; )
* 「Perlクックブック」:レシピ1.15「カンマで区切られたデータ(CSV)の解析」
* 詳説「正規表現」:7.1.5 導入例 CSVテキストの解析
(どちらもオライリーです)

参考まで

-- 沼尻