Я хочу получить расширение домена из URL-адреса. например. .com, .net и т. д.
Я использовал это:
$extension = pathinfo($_SERVER['SERVER_NAME'], PATHINFO_EXTENSION);
Мне просто интересно, есть ли лучший способ использования parse_url?
Используйте parse_url()
. Что-то вроде:
$host = parse_url('http://www.google.co.uk/test.html'); preg_match('/(.*?)((\.co)?.[az]{2,4})$/i', $host['host'], $m); $ext = isset($m[2]) ? $m[2]: '';
Изменить: Исправлено с регулярным выражением из этого ответа . Также поддерживается расширение, например .co.uk.
Вы можете легко разбить запрошенный URI следующим образом:
function tld( $uri ) { $parts = explode('.', $uri); return (sizeof($parts) ? ('.' . end($parts)) : false; }
Таким образом, вы можете сделать это:
if(!tld('googlecom')) // does not contain an ending TLD if(tld('google.com')) // this is a valid domain name; output: ".com"
Или вы можете просто использовать:
echo $_SERVER['SERVER_NAME'];
Таким образом, в моем выступлении самым лучшим примером использования является:
echo tld($_SERVER['SERVER_NAME']);