-3

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

但是,其中一些人使用了一个电子邮件列表,例如:

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

并且所有电子邮件所指user@example.com的都是有效的。

什么是 preg_replace 模式,它删除了“+”号之后的部分,这样我就可以在此之后分解并使用 array_unique 删除重复的电子邮件?

谢谢。

4

4 回答 4

3

简单的

$email = preg_replace('/\+[^@]*/i' , '' , $email);
于 2015-11-05T13:31:33.950 回答
0

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

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

希望它会有所帮助。

PS:我很抱歉巴特你以为我给你我的工作要做:如果我没有提供任何代码,那是因为它们都不起作用。

于 2012-06-20T13:42:56.353 回答
0

试试看

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

如果user+@example.com也应该更换,你可以采取

preg_replace('/(.+)\+.*(@.+)/', '$1$2', $mail);
于 2012-06-20T13:16:15.573 回答
0

要在您的情况下使用 preg_replace,您可以执行以下操作:

$email = 'user+1@example.com';
$email = preg_replace("#(.+)\+.*@(.*)#", '$1@$2', $email);
于 2012-06-20T13:23:32.013 回答