PHP e-posta Dizi Düzenli İfade

2 Cevap php

Format, e-postaların bir listesi verilmiştir:

  "FirstName Last" <email@address.com>, "NewFirst NewLast" <email2@address.com>

Ben sadece e-posta adreslerinin bir dize diziye bu yapı nasıl (ben isimleri gerekmez).

2 Cevap

Kullanmak preg_match_all (docs) olabilir:

preg_match_all('/<([^>]+)>/', $s, $matches);
print_r($matches); // inspect the resulting array

Tüm adresler < ... > explode() dize gerek yoktur içine şartıyla $s.


EDIT yorumlarına yanıt olarak, regex '/<([^@]+@[^>]+)>/' olarak yazılabilir olabilir. Bu olup olmadığından emin fail-safe olsa :)


EDIT #2 (aşağıdaki yorumları görmek - e-posta adresi ayrıştırma a bitch) any önemsiz olmayan veriler için bir ayrıştırıcı kullanın. Bazı hatalar, ancak yinelenen adresleri kaldırarak önlenebilir.