在@和tld之前获取没有名称的电子邮件域名
Get email domain name without name before @ and tld
我只需要从电子邮件地址中获取域名 - 所以如果电子邮件地址是 john@gmail.com 我只需要获取 gmail 部分。
我有以下有效代码和 returns gmail 用于 john@gmail.com 电子邮件地址,但 returns co 用于 john@gmail.co.uk 电子邮件地址。
$user_register_email = "john@gmail.co.uk";
$domain = preg_replace( '!^.+?@(.+?)$!', '', $user_register_email );
$domain = explode('.', $domain);
$domain = array_reverse($domain);
$domain = "$domain[1]";
echo $domain;
谁能告诉我如何修改上面的代码,以便它也适用于 gmail.co.uk 个地址?
非常感谢,
约翰
您可以通过这种方式隔离域部分(@ 之后的字符串)
$mystring = substr(user_register_email ,strpos($user_register_email , '@') +1, 255);
并执行爆炸
$user_register_email = "john@gmail.co.uk";
$domain = explode('@', $user_register_email);
$domain = explode('.', $domain[1]);
echo $domain[0];
您可以使用 2 个爆炸
数组上的 explode
和 reverse
函数不是必需的,preg_replace
本身就可以:
$domain = preg_replace( '!^.+?([^@]+)$!', '', $user_register_email );
输出:
gmail.co.uk
我只需要从电子邮件地址中获取域名 - 所以如果电子邮件地址是 john@gmail.com 我只需要获取 gmail 部分。
我有以下有效代码和 returns gmail 用于 john@gmail.com 电子邮件地址,但 returns co 用于 john@gmail.co.uk 电子邮件地址。
$user_register_email = "john@gmail.co.uk";
$domain = preg_replace( '!^.+?@(.+?)$!', '', $user_register_email );
$domain = explode('.', $domain);
$domain = array_reverse($domain);
$domain = "$domain[1]";
echo $domain;
谁能告诉我如何修改上面的代码,以便它也适用于 gmail.co.uk 个地址?
非常感谢,
约翰
您可以通过这种方式隔离域部分(@ 之后的字符串)
$mystring = substr(user_register_email ,strpos($user_register_email , '@') +1, 255);
并执行爆炸
$user_register_email = "john@gmail.co.uk";
$domain = explode('@', $user_register_email);
$domain = explode('.', $domain[1]);
echo $domain[0];
您可以使用 2 个爆炸
explode
和 reverse
函数不是必需的,preg_replace
本身就可以:
$domain = preg_replace( '!^.+?([^@]+)$!', '', $user_register_email );
输出:
gmail.co.uk