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)){ ... }

一切都返回为假。

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

4

1 回答 1

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']);
于 2012-09-09T02:53:15.167 回答