Ale.. Ale..
Ty jak to nazywasz "końcówka" to też domena. net.pl to subdomena w domenie globalnej .pl po prostu. Musiałbyś znać po prostu listę domen, które traktujesz jako złożone dla danej domeny globalnej. Nawiasem mówiąc to .pl też jest subdomeną domeny superglobalnej - pustej.
A najprościej jak to rozłożyć? Dzielisz stringa według kropki używając explode(), a ostatni człon (względnie przedostatni - example.com. też jest prawidłowe!) zawiera domenę globalną, a poprzedni domenę główną (czy jak by to nazwać). Potem sprawdzasz czy domena ustalona jako "główna" jest na liście domen typu .net.coś, .com.coś i jeśli tak to sprawdzasz jeszcze wcześniej.
Coś w stylu:
function GetMainDomain($domain = "www.example.com")
{
$elem = explode($domain, '.'); // uwaga - mogłem pomylić kolejność parametrów explode
$ec = count($elem);
if ($ec > 0)
$suffix = $elem[$ec -1]; // uwaga: uznajemy, że ostatni człon nie jest pusty!
else
echo "nieprawidłowa domena, ani jednej kropki nie ma!"
if (in_array(array("net", "com", "org", "biz", "info", "name"), $elem[$ec -2])
$main = $elem[$ec -3];
else
$main = $elem[$ec -2];
echo "przyrostek: $suffix, domena $main";
}
Tylko to powyższe należy na błędy i ostatni pusty człon uodpornić. I nie wiem czy zadziała, ale mniej więcej tak powinno wyglądać. I rzecz jasna funkcja powinna coś zwracać (tablicę?), ale to już zależy jak chcesz mieć to podane.