我尝试制作一个简单的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出错了吗?
亲切的问候,
阿瑞
答案 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"]);
显然,可以在不添加太多代码的情况下扩展列表。总是尝试编写易于维护的代码。