自动更改电子邮件地址的拼写错误

时间:2015-02-26 10:05:54

标签: php

我尝试制作一个简单的php脚本,在脚本中插入电子邮件地址时会自动纠正错字。

if (strpos($_POST["email"], "@hotmail.comm") !== false) {
    $_POST["email"] = str_replace('@hotmail.comm', '@hotmail.com', $_POST["email"]);
    goto end;
}
if (strpos($_POST["email"], "@homail.com") !== false) {
    $_POST["email"] = str_replace('@homail.com', '@hotmail.com', $_POST["email"]);
    goto end;
}
end:

当我测试这个时,@ homail.com的一切正常,但是当我用@ hotmail.comm测试时,电子邮件地址已更改为@ hotmail.commm

知道@ hotmail.comm出错了吗?

亲切的问候,

阿瑞

2 个答案:

答案 0 :(得分:0)

@Arie,请查看以下代码以了解您的解决方案。

$email = $_POST["email"];

if (strpos($email, "@hotmail.comm") !== false) { 
    $_POST["email"] = str_replace('@hotmail.comm', '@hotmail.com', $email);
}
if (strpos($email, "@homail.com") !== false) {
    $_POST["email"] = str_replace('@homail.com', '@hotmail.com', $email);
}

echo $_POST["email"];die; 

答案 1 :(得分:0)

对我来说很好,但goto,真的吗?分配给$_POST?不!

你可以写得更短更好:

$improvements = array('@hotmail.comm' => '@hotmail.com',
                      '@homail.com'   => '@hotmail.com');

$emailAddress = str_replace(array_keys($improvements),
                            array_values($improvements),
                            $_POST["email"]);

显然,可以在不添加太多代码的情况下扩展列表。总是尝试编写易于维护的代码。