Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Регулярное выражение выдирающее домен из урла?
цитата
06/05/11 в 18:06
 Vyacheslav
Подскажите, как на php или вобщем реализовать при помощи регулярного выражения выдирание чисто домена первого уровня из произвольного урла?
Тоесть преобразовать:
http://domain.com -> domain.com
http://domain.net/ -> domain.net
http://www.domain.org/?id=id&tour=tour -> domain.org
цитата
06/05/11 в 18:22
 x123p
Не надо тебе регулярка. Вот возможные варианты:
$domain = parse_url($url, PHP_URL_HOST);

$tmp = explode("/", $url);
$domain = $tmp[2];

Ну а если очень хочешь регулярко то вроде вот:
if (preg_match('/http:\/\/([^\/]+)\//i', $target_string, $matches)) {
  $domain = $matches[1];
}
цитата
06/05/11 в 19:27
 freeek
Код:

preg_match( '%^http(?:s)?://(?:www\.)?((?:[\w\d-]+\.)+\w{2,6})/.*$%i', $MAP['HTTP_REFERER'], $match );


копи-паста из своего

насчет http://domain.com -> domain.com
наверное так можно, нет по рукой проверить разные варианты
Код:

%http(?:s)?://(?:www\.)?((?:[\w\d-]+\.)+\w{2,6})%i
цитата
06/05/11 в 23:34
 condom007
Вот еще хорошая функция http://ru.php.net/manual/en/function.parse-url.php, полезная...
цитата
07/05/11 в 01:06
 x123p
Вообще регуляные выражения вещь довольно медленная, поэтому старайтесь их избегать.


Эта страница в полной версии