-5

如果我有一封电子邮件 myemail@gmail.com,如何仅在变量 $name 中存储 @ 和 .com 之间的内容?对于变量 $name 中的 myemail@gmail.com,变量 $name 将是“gmail”,对于 myemail@yahoo.com,变量 $name 将是“yahoo”。编辑:也许最好选择@和之间的所有内容。我在这里发布问题之前搜索了答案,但我找不到答案。

4

3 回答 3

3

您可以使用正则表达式,也可以使用更简单的方法来理解。

$email = 'somebody@gmail.com';
$parts = explode( '@', $email );
// simple method
$domainArr = explode( '.', $parts[1] );
echo $domainArr[ (count($domainArr)-2) ];  // this line was edited

试试看。

于 2013-04-27T10:35:14.670 回答
1

这将得到 @ 和第一个 .whatever 之间的所有内容:

preg_match('/@(.+)\.[a-z]+$/', 'nicholas@gmail.mail.com', $matches);
$name = $matches[1]; // gmail.mail
于 2013-04-27T10:34:21.653 回答
0

您想仅.com在域中删除吗?

如果是这样,您可以str_replace(".com", "", $domain)split("@", $domain).

在其他地方,您需要阅读正则表达式

于 2013-04-27T10:34:54.930 回答