Мне нужно получить доменное имя с URL-адреса, исключая «www» и «.com» или «.co.uk» или что-либо другое.
Пример-
У меня есть следующие URL-адреса, как-
http://www.example.com
http://www.example.co.uk
http://subdomain.example.com
http://subdomain.example.co.uk
Там будет что-нибудь в «.com», «.org», «.co.in», «.co.uk».
Вы должны использовать функцию PHP parse_url () в сочетании с str_replace()
или регулярное выражение, или, может быть, даже взорваться. Это зависит от нескольких вещей:
Что следует отметить:
Я бы сделал что-то вроде этого:
<?php
$url = 'http://www.something.com';
$parts = explode('.', parse_url($url, PHP_URL_HOST));
echo $parts[1]; // "something"
(?:https?:\/\/)?(?:www\.)?(.*)\.(?=[\w.]{3,4})
Попробуйте это. См. Демонстрацию. Захватите захват.
Я стараюсь, это работает для меня.
$original_url="http://subdomain.example.co.uk"; //try with all urls above
$pieces = parse_url($original_url);
$domain = isset($pieces['host']) ? $pieces['host'] : '';
if (preg_match('/(?P<domain>[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i', $domain, $regs)) {
echo strstr( $regs['domain'], '.', true );
}
Output- example
Я получил это отсюда
Получить доменное имя из полного URL