我正在为我的新项目创建一个注册系统。我唯一的问题是@googlemail.com 和@gmail.com 被识别为单独的电子邮件地址。有没有人知道如何将它们从“@googlemail.com”更改为“@gmail.com”。
**Some pseudocode to help you**
$change = '@gmail.com'
$email = swap($change,'@googlemail.com', $email);
我的编程能力有限,所以不要判断伪代码。
您可能想使用stripos()查找字符串,然后使用str_ireplace()将 gmail 替换为 googlemail。
if(stripos($email,'@gmail.com')!== false){
$email = str_ireplace('gmail.com','googlemail.com',$email);
}
使用 str_replace():
$email = 'example@gmail.com';
$email = str_replace('@gmail.com','@googlemail.com',$email);
这将转变example@gmail.com
为example@googlemail.com
规范化 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;
}
substr()
可能是更安全的选择。还有很多其他的方法。swap()
您正在寻找的将是(str_replace()
如果您只是更改swap
为str_replace
应该做的伎俩。