2016-07-22 4 views
0

Мне нужно получить только доменное имя с адреса электронной почты - так что если адрес электронной почты [email protected], мне нужно захватить только часть gmail.Получить имя домена электронной почты без имени до @ и tld

У меня есть следующий код, который работает и возвращает Gmail для [email protected] адреса электронной почты, но возвращает совместно для [email protected] адреса электронной почты.

$user_register_email = "[email protected]"; 

$domain = preg_replace('!^[email protected](.+?)$!', '$1', $user_register_email); 
$domain = explode('.', $domain); 
$domain = array_reverse($domain); 
$domain = "$domain[1]"; 

echo $domain; 

Может ли кто-нибудь сказать мне, как я изменяю вышеуказанный код, чтобы он также работал на адреса gmail.co.uk, пожалуйста?

Большое спасибо,

Джон

ответ

1
$user_register_email = "[email protected]"; 

$domain = explode('@', $user_register_email); 
$domain = explode('.', $domain[1]); 
echo $domain[0]; 

Вы можете использовать 2 взрыва

0

Вы можете выделить часть домена (строка после @) таким образом

$mystring = substr(user_register_email ,strpos($user_register_email , '@') +1, 255); 

и выполнить взрываются

0

explode и reverse функции в массиве не нужно, preg_replace прекрасно само по себе:

$domain = preg_replace('!^.+?([^@]+)$!', '$1', $user_register_email); 

Выход:

gmail.co.uk 
Смежные вопросы