仅使用edu域进行电子邮件验证

时间:2018-03-30 07:50:26

标签: php email-validation

我一直在尝试使用以下代码

获取域名以.edu结尾的电子邮件地址
$email = $_REQUEST['email'];

$school = substr($email, strpos($email, "@") + 1);    

有什么办法吗?

5 个答案:

答案 0 :(得分:2)

你只需要创建一个子字符串,包括当前字符串的最后3个字符。

<?php
$tld = substr($email, strlen($email)-2, 3);    // three last chars of the string
if ($tld = "edu") {
    // do stuff
}
?>

答案 1 :(得分:1)

获取您的域名和域名扩展名应该有效:

 $email = 'test@website.edu';
$getDomain = explode('@', $email);
$explValue = explode('.', $getDomain[1], 2);
print_r($explValue);

输出结果是:

Array ( [0] => website [1] => edu )

之后您可以查看

if($explValue[1] == 'edu'){
//your code here
}

答案 2 :(得分:0)

如果.edu是电子邮件地址的最后一部分,您可以使用strlensubstr

$email = "test@test.edu";
$end = ".edu";
$string_end = substr($email, strlen($email) - strlen($end));
if ($end === $string_end) {
    // Ok
}

也许这也是使用explode并在@上拆分的选项。然后再次使用explode并在一个点上拆分并检查返回的数组是否包含edu

$strings = [
    "test@test.edu",
    "test@test.edu.pl",    
    "test@test.com"
];
foreach ($strings as $string) {
    if (in_array("edu", explode(".", explode("@", $string)[1]))) {
        // Etc..
    }
}

Demo

答案 3 :(得分:-1)

strpos($email, ".edu.");它应该是有用的。 例如gensek@metu.edu.tr

答案 4 :(得分:-1)

您可以使用substr并根据您的要求获得最后4个字符,因此电子邮件有效,否则不会。     

$string = "xyzasd.edu";
echo $txt = substr($string,-4);

if($txt == ".edu"){
    //Valid
}else{
    //Not Valid
}