2013-04-27 66 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

相關問題