我遇到正确拆分数组的问题。我有一个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 :(得分: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']);