1

配列を正しく分割するのに問題があります。1行に1つずつ複数のメールアドレスを入力できるテキストエリア入力があります。入力したら、これを配列に変換してから、データベースに追加します。以下のコード:

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

すべてがfalseとして返されます。

何が間違っているのでしょうか。また、データを正しくクリーンアップするにはどうすればよいですか。

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 に答える