2013-04-27 71 views
-5

如果我有一封电子邮件[email protected],如何在变量$ name中存储@和.com之间的内容?对于变量$ name中的[email protected]将是'gmail',对于[email protected],变量$ name中将是'yahoo'。 编辑:也许选择@和.I之间的所有内容会更好,我在这里发布了一个问题之前寻找答案,但我找不到答案。如何在电子邮件中获取@和.com之间的内容?

+0

你到目前为止尝试过哪些代码? – 2013-04-27 10:29:07

+3

我的电子邮件地址中没有'.com' ... – Quentin 2013-04-27 10:29:11

+2

首先,你有没有为自己尝试过任何东西?其次,你为什么要假设'.com'? – Ben 2013-04-27 10:29:16

回答

3

你可以使用正则表达式,或者你可以使用一个简单的方法来了解。

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

试试看。

+1

这不适用于具有子域名的电子邮件。 – 2013-04-27 10:45:51

+0

你是对的,我想到了它,我会改变它,以正确的方式反映简单的情况。 – 2013-04-27 10:47:25

1

这将得到@和第一.whatever之间的一切:

preg_match('/@(.+)\.[a-z]+$/', '[email protected]', $matches); 
$name = $matches[1]; // gmail.mail 
0

你只想.com域删除?

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

在其他地方,你需要阅读Regular Expressions

相关问题