0

を使用しtextareaて、ユーザーが複数のメール アドレスをコンマで区切って入力できるようにしています。さらに、スペース文字や改行が含まれる可能性が非常に高くなります。

textareaからの文字列に有効な電子メールアドレス (構文的に有効で、DNS チェックがないなど)、スペース文字、または改行のみが含まれていることを PHP で確認/保証するにはどうすればよいですか? スペース文字と改行は、電子メール アドレス内に存在しない場合があります (いずれにせよ、アドレスの有効性の最初の制限が破られます)。

4

2 に答える 2

1
  function checkTextArea($textarea){
    $textarea = str_replace(array("\r\n", "\r", " "), "", $textarea);
    $textarea = explode(";", $textarea);
    foreach($textarea as $res){
      if(!filter_var($res, FILTER_VALIDATE_EMAIL)){ 
         return false;
      }
    }
    return true;
  }

このようなもの。改行/スペースをコンマに置き換えることができます; ユーザーが come で区切るのを忘れてスペースを使用した場合。これを行うと、複数の ; が存在する可能性があります。($res) が空の場合、メールの有効性をチェックせず、単に無視します

于 2013-11-07T15:14:29.387 に答える
0

RegEx Validation

// get your email list from your textbox
$emailList = "test@abc.com, myname@abc.com, php@account.com, test.com";

$ArrayList = explode(", ", $emailList);
$regex = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/'; 
foreach($ArrayList as $address)
{
    if (preg_match($regex, $address))
    {
        print $address." Is valid Email<br>";
    }
    else
    {
        print $address." Is Invalid Email<br>";
    }
}
于 2013-11-07T15:29:45.670 に答える