PHP + Preg_replace:删除电子邮件中“+”后面的部分

时间:2012-06-20 13:11:55

标签: php email preg-replace

为了推广网站,我允许订阅者通过电子邮件邀请朋友,我会奖励他们。

但是,其中一些人使用的电子邮件列表如下:

user@example.com, user+1@example.com, user+2@example.com

所有这些电子邮件都引用user@example.com,因此它们都有效。

在'+'符号后删除部分的preg_replace模式是什么,所以我可以在之后爆炸并使用array_unique删除重复的电子邮件?

感谢。

4 个答案:

答案 0 :(得分:3)

$email = preg_replace('/\+[^@]*/i' , '' , $email);

答案 1 :(得分:0)

尝试

preg_replace('/(.+)\+.+(@.+)/', '$1$2', $mail);

如果还应更换user+@example.com,您可以

preg_replace('/(.+)\+.*(@.+)/', '$1$2', $mail);

答案 2 :(得分:0)

要在您的案例中使用preg_replace,您可以执行以下操作:

$email = 'user+1@example.com';
$email = preg_replace("#(.+)\+.*@(.*)#", '$1@$2', $email);

答案 3 :(得分:0)

我终于明白了。 Juste使用以下方法删除'+'和'@'之间的部分:

preg_replace('/\+(.)*@/', '@', $emails);

希望它会有所帮助。

P.S。:对不起Bart你认为我给你的工作要做:如果我没有提供任何代码,那是因为它们都不起作用。