1

次のような形式の imap_headers() 経由で返される文字列があります。

Flags Number) Date Sender Subject (Size)

配列から返される文字列のサンプルは次のとおりです。

A 454)22-Jun-2004 cust.serv@amazon.co.uk Your Amazon.co.uk Order (5284 chars)
1)10-Oct-2010 Gmail Team Get Gmail on your mobile (2457 chars)
5)12-Nov-2010 =?ISO-8859-1?Q?Eric_ For Website (671669 chars)
U 6)17-Nov-2010 no-reply@hostmessage host.net account : boom (2082 chars)

この文字列をデコード/解析し、この文字列からオブジェクトを作成したいと考えています。例えば

Flags
Date
Sender
Subject

この文字列はスペースで区切られているだけなので、php文字列関数を使用してこれを解析するのは難しいと思います。誰でもこれについて私を助けることができますか? 送信者の部分は名前にすることもできるので、メールの追加または Web サイトの URL として扱うことができます。

4

1 に答える 1

2

上記のコメントで述べたように、十分な情報を提供しないため、機能する正規表現を作成することはほとんど不可能です。ただし、あなたの行に一致する例を示します。そこから先に進むことができます。

preg_match('_([A-Z]+) (\d+)\)(\d+-[A-Za-z]+-\d{4}) (\S+@\S+\.\S+) (.+) \((\d+) chars\)_', $header, $matches);
var_dump($matches);

可能な出力の他のバリアントを考慮してこの式を拡張する必要があるかどうかは、アプリケーションによって異なります。私が行ったことのすべての詳細については、公式ドキュメントを参照してください。

于 2013-01-11T22:30:11.320 に答える