2014-02-18 126 views
0

我使用WordPress API创建选项页面。其中一个输入需要输入电子邮件。我需要编写一个函数来验证输入的电子邮件并将其返回。如何验证电子邮件输入?

 function nl_validate_settings($input) { 
      if ($field_args = array('type' => 'email')) { 
       foreach($input as $email) { 
        if (! preg_match('/^[A-Za-z0-9!#$%&\'*+\/=?^_`{|}~-][email protected][A-Za-z0-9-]+(\.[A-Za-z0-9-]+)+[A-Za-z]$/', $email)) { 
         $email = "Invalid email address!"; 
        } 
       } 
       return $email; 
      } 
        } 

这是行不通的,我不知道我在做什么错。当电子邮件输入正确时,它不会保存电子邮件。

我检查了StackOverFlow的其他答案,但找不到任何可以解决问题的东西。您的帮助将不胜感激!

我不知道如何将其格式化

+0

组合这不是重复。我想知道如何格式化它 – user3204179

+1

然后更新你的问题。 “格式”一词目前不在其中。当你在这里时,解释你的意思是“不工作”。 – Blorgbeard

+0

@Blorgbeard刚刚做过 – user3204179

回答

4

我会用filter_var和使用的同时SanatizeValidation

$email = $_POST['email']; 
$clean_email = filter_var($email, FILTER_SANITIZE_EMAIL); 

if(filter_var($clean_email, FILTER_VALIDATE_EMAIL)) 
{ 
    //Case if Email is valid 
} 
else 
{ 
    //Handle the case the email is invalid 
} 
+0

我该怎么做? – user3204179

+0

您将不得不使用PHP 5.3及更高版本来使用此功能。我建议在正则表达式中使用内建的PHP函数,因为您的电子邮件验证与您发现的脚本一样好,并且此函数已针对各种电子邮件进行了对战测试 – Newbi3

+0

$ a从哪里来?为什么使用$ _POST?我正在使用WordPress Api – user3204179