2011-04-08 62 views
3

說我有以下電子郵件地址逗號分隔的字符串:拆分逗號分隔的電子郵件地址的一個字符串引號逗號

$addrList = '[email protected], [email protected], "Guice, Doug" <[email protected]>'; 

我需要以下結果:

[0] => [email protected] 
[1] => [email protected] 
[2] => "Guice, Doug" <[email protected]> 

似乎相當很簡單,但引用名稱中的逗號確實引發了我試圖使用preg_match_all或preg_split查找解決方案。此外,我們也應該適應也使用單引號的電子郵件,即:'smith, tom' <[email protected]>

回答

5

str_getcsv()應該給你你所需要的,儘管它會去掉引號。

編輯

如果你想要把引號回:

$addrList = '[email protected], [email protected], "Guice, Doug" <[email protected]>'; 


$t = str_getcsv($addrList); 

foreach($t as $k => $v) { 
    if (strpos($v,',') !== false) { 
     $t[$k] = '"'.str_replace(' <','" <',$v); 
    } 
} 

var_dump($t); 
+0

偉大的想法 - 我剛剛試了一下,我失去了在最後一個條目的實際電子郵件地址字符串 - 我只有名字:Guice,Doug。有任何想法嗎?謝謝! – 2011-04-08 16:48:06

+1

你在呼應它到網絡瀏覽器不是你!瀏覽器在看到時如何反應?嘗試做var_dump(),而不是 – 2011-04-08 16:50:09

+0

哦,你太好了。我完全錯過了!非常感謝!! – 2011-04-08 16:54:43