我正在为我的新项目创建一个注册系统。我唯一的问题是@ googlemail.com和@ gmail.com被识别为单独的电子邮件地址。有没有人有关于如何将它们从“@ googlemail.com”更改为“@ gmail.com”的想法或一些PHP代码。
**Some pseudocode to help you**
$change = '@gmail.com'
$email = swap($change,'@googlemail.com', $email);
我的编程技巧有限,所以不要判断伪代码。
答案 0 :(得分:1)
您可能希望使用stripos()来查找字符串,然后str_ireplace()使用googlemail替换gmail。
if(stripos($email,'@gmail.com')!== false){
$email = str_ireplace('gmail.com','googlemail.com',$email);
}
答案 1 :(得分:1)
使用str_replace():
$email = 'example@gmail.com';
$email = str_replace('@gmail.com','@googlemail.com',$email);
这会将example@gmail.com
转换为example@googlemail.com
答案 2 :(得分:1)
规范化GMail地址并不像看起来那么容易。 GMail具有以下功能来更改地址:
可以使用“+”符号添加随机文本:my.addres+sometext@gmail.com
/**
* Normalize a GMail Address.
*
* Example:
* my.name.1+ABC123@gmail.com => myname1@gmail.com
* my.name@googlemail.com => myname@gmail.com
*
* @param string $email
* @return string
*/
public function normalize ($email)
{
foreach (array(
'gmail.com',
'googlemail.com'
) as $domain) {
if (substr_count($email, $domain)) {
$email = preg_replace('/\+.*(@)/i', '\\1', $email); //removes +ABC123
$email = explode('@', $email);
$email[0] = str_replace('.', '', $email[0]); //remove dots
$email = implode('@', $email);
$email = str_replace('@' . $domain, '@gmail.com', $email); //set default domain
}
}
return $email;
}
答案 3 :(得分:0)
substr()
可能是更安全的选择。还有很多其他方法。
您要查找的swap()
为str_replace()
(如果您只是将swap
更改为str_replace
,那么就应该这样做。