Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Хитрая регулярка для домена

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Namaste
Отправлено: 27 Марта, 2013 - 09:52:55
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




Привет!

Нужна регулярка, которая выковырнет из URL домен.

Сначала юзаю parse_url. Если получаю что-то типа example.com, то все ок.

Но оно может выдать и super.example.com.
Нужно что бы на выходе было именно example.com.

Но это еще не все.
Домены бывают и такие, например:
super.example.co.uk

В этом случае на выходе нужен example.co.uk, а не co.uk Улыбка

Вобщем, задача такая:
Если домен второго уровня - ничего не делаем.
Если домен выше второго уровня и во втором уровне у него 3 символа или меньше, то выдаем домен третьего уровня.
Если домен выше второго уровня и во втором уровне у него больше 3х символов, то выдаем домен второго уровня.

Как все это покомпактнее организовать?
 
 Top
EuGen Администратор
Отправлено: 27 Марта, 2013 - 09:57:35
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




gates.bill.us.gov - по Вашему, доменом будет "bill.us.gov", тогда как на деле актуальный домен - "us.gov". Подобных примеров можно привести множество.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Namaste
Отправлено: 27 Марта, 2013 - 13:03:53
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




для моих задач погрешность допустима.
 
 Top
EuGen Администратор
Отправлено: 27 Марта, 2013 - 13:59:35
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




PHP:
скопировать код в буфер обмена
  1. $sDomain="this.example.company.uk";
  2. //$sDomain="this.example.co.uk";
  3. preg_match('/[a-zA-Z0-9]+\.[a-zA-Z0-9]{1,3}\.[a-zA-Z0-9]{2,4}$|[a-zA-Z0-9]{4,}\.[a-zA-Z0-9]{2,4}$/',$sDomain, $rgMatches);
  4. //var_dump($rgMatches[0]);

?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Namaste
Отправлено: 28 Марта, 2013 - 10:23:55
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




Спасибо!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB