Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用preg match验证电子邮件地址域_Php_Validation_Preg Match - Fatal编程技术网

Php 如何使用preg match验证电子邮件地址域

Php 如何使用preg match验证电子邮件地址域,php,validation,preg-match,Php,Validation,Preg Match,我想使用pregmatch验证电子邮件地址域。此外,我在电子邮件列表数组中插入了有效的edu域,因此当用户输入电子邮件地址时,该条目将首先签入电子邮件列表数组。如果可用,则为验证。我正在服务器端做验证部分。。任何帮助都是徒劳的。提前谢谢你 <?php $email = $_POST['email']; // get the email value $email_exp = explode("@",$email); // split email $email_name = $email_e

我想使用pregmatch验证电子邮件地址域。此外,我在电子邮件列表数组中插入了有效的edu域,因此当用户输入电子邮件地址时,该条目将首先签入电子邮件列表数组。如果可用,则为验证。我正在服务器端做验证部分。。任何帮助都是徒劳的。提前谢谢你

<?php
$email = $_POST['email']; // get the email value
$email_exp = explode("@",$email); // split email 
$email_name = $email_exp[1]; // get the domain of email address

$email_list = array("berkely.edu","ucfs.edu","udef.edu","ucms.edu","ucef.edu"); // valid edu domain 

for($i=0;$i<sizeof($email_list);$i++)
{
if(in_array($email_name,$email_list))
{
if (preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/', $email_name))
{
  // validate email 
}
}
}

使用
filter\u var
,并用它替换
preg\u match
调用

if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) == TRUE) {
   // email is valid
}
因此,更新后的代码将是:

<?php
$email = $_POST['email']; // get the email value
$email_exp = explode("@",$email); // split email 
$email_name = $email_exp[1]; // get the domain of email address
$email_list = array("berkely.edu","ucfs.edu","udef.edu","ucms.edu","ucef.edu");

$email_is_valid = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) == TRUE;
if($email_is_valid && in_array($email_name,$email_list) ) {
  // email is valid for your purposes
}

如果我使用filter\u var,为什么不在这里使用preg\u match@stoic@stoic我还需要arrray中列出的特定edu域,以便从我的电子邮件列表数组中筛选\u验证\u电子邮件替换???使用filter_var后,我不需要这里的preg匹配??没错
filter\u var
为您验证电子邮件,因此,不需要
preg\u match
用户输入电子邮件域,也可以检查电子邮件列表数组。。如果它在其中可用,那么它是有效的。。。从我的$EMAIL中筛选\u验证\u电子邮件替换_list@prashant:用正确的代码更新答案。好的,我将替换您提供给我的代码。。并检查了结果。。。