Autor Zpráva
Bond
Profil *
Mám regulérní výraz pro kontrolu URL: preg_match("/^(https?:\/\/+[\w\-]+\.[\w\-]+)/i",$url)
Potřebuji ale regulérní výraz, který mě vypíše pouze doménu 1.řádu.

Například: bon.osobnost.cz -> osobnost.cz
DJ Miky
Profil
Doména prvního řádu je jen např. cz, druhého řádu je teprve osobnost.cz.

Každopádně to není tak jednoduché jako vytáhnutí posledních dvou částí domény, protože některé národní TLD neumožňují přímou registraci domén druhého řádu – viz např. seznam na Wikipedii, sloupec SLD. Typickým příkladem je .uk, kde lze registrovat pouze domény třetího řádku jako example.co.uk, example.me.uk, example.org.uk apod. Abys měl rozumné výsledky, musel bys tudíž u takových TLD vracet doménu třetího řádu místo druhé. A aby to bylo ještě složitější, některé TLD mají (nebo měly) oba způsoby – domény jak druhého, tak třetího řádu.

Osobně bych to asi řešil seznamem TLD, které umožňují registraci pouze na třetím řádu, a u nich vracet poslední tři komponenty domény, u ostatních TLD poslední dvě.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: