我想知道如何用正则表达式获取域名中的com或co.uk
$domain = abcde.co.uk;
$domain2 = abcde.com
$tdl = preg_replace('/^.*\.([^.]+)$/D', '$1', $domain);
echo $tdl;
$tdl2 = preg_replace('/^.*\.([^.]+)$/D', '$1', $domain);
echo $tdl2;
它在第二个中有效,但在第一个中无效。
你可以做
substr($domain, strpos($domain, '.') + 1)
。万无一失,并且可能比正则表达式更具可读性。
警告:仅当您的字符串包含
.
时它才有效
此代码将输出第一个点之后的任何扩展名:
$domain = "abcde.com";
$tdl = preg_replace('/^[^.]+\.(.*)$/', '$1', $domain);
echo $tdl;