2012-09-09 37 views
1

我在正確拆分數組時遇到問題。我有一個textarea輸入,允許每行輸入多個電子郵件地址。一旦進入,我把它變成一個數組,然後將它們添加到數據庫中。下面的代碼:拆分多行電子郵件地址條目

$addrs = explode('<br />',nl2br($form['bulk_add_emails']));

這仍留在電子郵件地址之前的數據庫條目,當我運行使用

if(preg_match('/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/', $v)){ ... }

一切驗證檢查,這意味着斷行正在恢復爲假。

我在做什麼錯誤,以及如何正確清理數據?

+0

爲什麼你不直接用'n來爆炸而不是用'nl2br'來犯這個可怕的罪? – ThiefMaster

回答

0

請勿在<br />explode(),也不要撥打nl2br()。相反,使用preg_split()可以更靈活地處理換行符,如果有空行,則可以處理多行,並且\r\n\n換行符。

// (\r?\n)+ will split on one or more \n with an optional \r preceding it. 
// ... so empty lines don't result in empty array elements. 
$addrs = preg_split('/(\r?\n)+/', $form['bulk_add_emails']); 
+0

我一直在用正則表達式掙扎。像魅力一樣工作。謝謝您的幫助! – TH1981

相關問題