2012-06-19 5 views
2

Итак, у меня есть такой код, который возвращает доменное имя, но я не могу понять, как удалить субдомен, может ли кто-нибудь помочь?Удалить субдомен от url

$link='http://www.lol.wwwyoursitewww.com/aaaaa/ggghd/site.php?sadf=asg'; 
preg_match('/^http\:\/\/www.(.*?)\/.*/i', $link, $link_domain); 
echo $link_domain[1]; 

ответ

1

Я хотел бы использовать встроенный parse_url, чтобы сделать как можно больше, что будет просто оставить вас с доменным именем, чтобы разобраться. Я был немного неясен в отношении требований. Каков ожидаемый результат? - просто wwwyoursitewww.com? или http://wwwyoursitewww.com/aaaaa/ggghd/site.php?sadf=asg

$link='http://www.lol.wwwyoursitewww.com/aaaaa/ggghd/site.php?sadf=asg'; 

$url = parse_url($link); 

if (preg_match("/(www.*?)\.(.*)/", $url['host'], $m)) { 
    $url['host'] = $m[2]; 
} 

$rebuild = $url['scheme'] . '://' . $url['host'] . $url['path'] . '?' . $url['query']; 

echo "$rebuild\n"; 
+0

Пожалуйста, НЕ вставлять переменные в строку. Он подвержен проблемам с n00bs, которые видят это и начинают использовать одинарные кавычки. Там были некоторые q с этой точной проблемой. –

+0

@ColeJohnson Хм, хорошо, я поклоняюсь вашему лучшему суждению об этом. Пример обновлен. – Adam

+0

Также. Для '$ m [2]', следует ли использовать '$ m [sizeof ($ m) - 1]'? Или я ошибаюсь? Я не очень хорошо знаю REGEX. –

0
$link='http://www.lol.wwwyoursitewww.com/aaaaa/ggghd/site.php?sadf=asg'; 
preg_match('!www((\.(\w)+))+!', $link, $match); 
$link_arr=(explode(".", $match[0])); 
echo $link_domain = $link_arr[count($link_arr)-1]; 

Выход: com

Смежные вопросы