Php 正在验证唯一电子邮件,忽略gmail或其他服务别名
这种情况下,我只想接受来自波斯的唯一电子邮件地址,而忽略gmail别名(如果其他服务也有类似的功能) 原因是,我们提供的折扣代码数量有限,公平地说,我们不希望有人只使用一个电子邮件地址申请大额折扣 据我了解:Php 正在验证唯一电子邮件,忽略gmail或其他服务别名,php,email-validation,Php,Email Validation,这种情况下,我只想接受来自波斯的唯一电子邮件地址,而忽略gmail别名(如果其他服务也有类似的功能) 原因是,我们提供的折扣代码数量有限,公平地说,我们不希望有人只使用一个电子邮件地址申请大额折扣 据我了解: 如果gmail.com或googlemail.com则删除+及其后的任何内容,因为这是别名 如果是gmail,则删除username中被忽略的任何点john.smith@与johnsmith@ 不要仅仅使+符号无效,因为它对电子邮件地址有效 我还需要了解其他哪些服务允许用户将其电子邮件
- 如果
或gmail.com
则删除googlemail.com
及其后的任何内容,因为这是别名+
- 如果是
,则删除gmail
中被忽略的任何点username
与john.smith@
johnsmith@
- 不要仅仅使
符号无效,因为它对电子邮件地址有效+
干杯。在一个服务(如Gmail)中编写代码来忽略一些已知的别名格式并不是什么大问题。然而,试图阻止一个人仅仅根据电子邮件地址申请多个折扣是一项不可能的任务 有很多不同的方法来创建新的电子邮件地址和别名。例如,有一些服务可以让你创建一次性电子邮件,通过这些服务,你可以根据需要拥有任意多个不同的地址。此外,只需几美元,您就可以在自己的域中获得自己的电子邮件主机,您可以在其中注册一组地址和/或一个综合地址 要想阻止任何人下定决心要向你索要一大笔折扣,这将需要大量的资源。除了电子邮件地址之外,没有其他识别方法
我会考虑添加其他验证方法。这取决于你在做什么,可能是链接到Facebook,甚至询问信用卡详细信息以进行验证。编写代码以忽略单一服务(如Gmail)中的一些已知别名格式并不是什么大问题。然而,试图阻止一个人仅仅根据电子邮件地址申请多个折扣是一项不可能的任务 有很多不同的方法来创建新的电子邮件地址和别名。例如,有一些服务可以让你创建一次性电子邮件,通过这些服务,你可以根据需要拥有任意多个不同的地址。此外,只需几美元,您就可以在自己的域中获得自己的电子邮件主机,您可以在其中注册一组地址和/或一个综合地址 要想阻止任何人下定决心要向你索要一大笔折扣,这将需要大量的资源。除了电子邮件地址之外,没有其他识别方法
我会考虑添加其他验证方法。这取决于你在做什么,可能是链接到Facebook,甚至询问信用卡详细信息以进行验证。编写代码以忽略单一服务(如Gmail)中的一些已知别名格式并不是什么大问题。然而,试图阻止一个人仅仅根据电子邮件地址申请多个折扣是一项不可能的任务 有很多不同的方法来创建新的电子邮件地址和别名。例如,有一些服务可以让你创建一次性电子邮件,通过这些服务,你可以根据需要拥有任意多个不同的地址。此外,只需几美元,您就可以在自己的域中获得自己的电子邮件主机,您可以在其中注册一组地址和/或一个综合地址 要想阻止任何人下定决心要向你索要一大笔折扣,这将需要大量的资源。除了电子邮件地址之外,没有其他识别方法
我会考虑添加其他验证方法。这取决于你在做什么,可能是链接到Facebook,甚至询问信用卡详细信息以进行验证。编写代码以忽略单一服务(如Gmail)中的一些已知别名格式并不是什么大问题。然而,试图阻止一个人仅仅根据电子邮件地址申请多个折扣是一项不可能的任务 有很多不同的方法来创建新的电子邮件地址和别名。例如,有一些服务可以让你创建一次性电子邮件,通过这些服务,你可以根据需要拥有任意多个不同的地址。此外,只需几美元,您就可以在自己的域中获得自己的电子邮件主机,您可以在其中注册一组地址和/或一个综合地址 要想阻止任何人下定决心要向你索要一大笔折扣,这将需要大量的资源。除了电子邮件地址之外,没有其他识别方法
我会考虑添加其他验证方法。这取决于你在做什么,可能是链接到Facebook,甚至询问信用卡详细信息以进行验证。在这种情况下,你可以使用Regex。使用此代码,您可以将电子邮件数组转换为别名数组(您可以为每个邮件服务自定义符号模式): 代码:
$mails = ['johnsmith@gmail.com', 'johnsmith@yahoo.com', 'jo.hn.sm.ith@gmail.com'];
$valid_mails = [];
$pattern = "/^(?P<name>[A-Za-z0-9._+\-\']+)@(?P<mail>[A-Za-z0-9.\-]+)\.[A-Za-z]{2,}$/";
$symbol_pattern = ['gmail'=>'/(\.|\+|-)/','yahoo'=>'/(\.)/'];
foreach ($mails as $key=>$mail) {
$valid_mails[$key] = preg_replace_callback($pattern, function($match){
global $symbol_pattern;
return preg_replace($symbol_pattern[$match['mail']], '', $match['name']);
}, $mail);
}
var_dump($valid_mails);
在这种情况下,可以使用正则表达式。使用此代码,您可以将电子邮件数组转换为别名数组(您可以为每个邮件服务自定义符号模式): 代码:
$mails = ['johnsmith@gmail.com', 'johnsmith@yahoo.com', 'jo.hn.sm.ith@gmail.com'];
$valid_mails = [];
$pattern = "/^(?P<name>[A-Za-z0-9._+\-\']+)@(?P<mail>[A-Za-z0-9.\-]+)\.[A-Za-z]{2,}$/";
$symbol_pattern = ['gmail'=>'/(\.|\+|-)/','yahoo'=>'/(\.)/'];
foreach ($mails as $key=>$mail) {
$valid_mails[$key] = preg_replace_callback($pattern, function($match){
global $symbol_pattern;
return preg_replace($symbol_pattern[$match['mail']], '', $match['name']);
}, $mail);
}
var_dump($valid_mails);
在这种情况下,可以使用正则表达式。使用此代码,您可以将电子邮件数组转换为别名数组(您可以为每个邮件服务自定义符号模式): 代码:
$mails = ['johnsmith@gmail.com', 'johnsmith@yahoo.com', 'jo.hn.sm.ith@gmail.com'];
$valid_mails = [];
$pattern = "/^(?P<name>[A-Za-z0-9._+\-\']+)@(?P<mail>[A-Za-z0-9.\-]+)\.[A-Za-z]{2,}$/";
$symbol_pattern = ['gmail'=>'/(\.|\+|-)/','yahoo'=>'/(\.)/'];
foreach ($mails as $key=>$mail) {
$valid_mails[$key] = preg_replace_callback($pattern, function($match){
global $symbol_pattern;
return preg_replace($symbol_pattern[$match['mail']], '', $match['name']);
}, $mail);
}
var_dump($valid_mails);
在这种情况下,你