拆分多行电子邮件地址条目

时间:2012-09-09 02:50:38

标签: php arrays

我遇到正确拆分数组的问题。我有一个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)){ ... }

一切都是假的。

我做错了什么以及如何正确清理数据?

1 个答案:

答案 0 :(得分:0)

请勿explode() <br />,不要致电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']);