1

私のSQLには、電子メールの送信者を含む行がいくつかあります。それらの送信者は文字列であり、列で区切られていません。

これは私の行からの 1 つの例です。

"Test Example" <test@example.com>, "Second Person" <sperson@example.com>, third@example.com

ご覧のとおり、プレーンテキストで爆発の準備ができています。カンマで分解して区切ることができます。

しかし、今日、私はこの例に気づきました:

"Test, Example" <test@example.com>, "Second Person" <sperson@example.com>, third@example.com

ご覧のとおり、Test の名前にはコンマが含まれています。だから私がそれを爆発させると、テストも爆発します。これにより、エラーが発生します。

いくつかの正規表現を試しましたが、うまくいきませんでした。誰かが私にそれらを爆発させるのに最適な正規表現を提案できますが、名前は提案できません。

参考までに、名前は常に""タグに入れます。したがって、コンマはそうではありません。

コンマ引用符で囲まれている場合は、単に渡す必要があります。

4

2 に答える 2

2
explode('>, "', $emails);

その後、展開された文字を追加します-または、さらに良いことに、を使用しますimap_rfc822_parse_adrlist()

于 2012-04-10T13:49:52.980 に答える
0

おそらく、データベースへのデータを検証する必要があるため、誰かの名前に「、」(または他の記号も)を含めることはできません.

ユーザーにフォーマット表示を指示させたくない場合は、表示する必要があるときにテキストを自分でフォーマットする必要があります

于 2012-04-10T13:50:26.720 に答える