Domainname und TLD herausfinden

TS-JC

Erfahrenes Mitglied
Hallo zusammen,

wohl ein kleneres Problem für die, die es können.. aber ich nicht :(

Also ich habe eine Eingabe und möchte gern nur den Domainnamen und die Endung haben. Hier einige Beispiele:


Ergebnis müsste "domain.de" oder "domain.co.uk" sein. Die letzte Zeile dürfte nichts ausspucken.

Ich habe nun angefangen das per regex zu machen, aber so richtig will es leider nicht. Hier mal mein Versuch:

([0-9a-z]*)(\.([a-z]{2,4}){1,2})

thx4help schonmal :)
 
Hi,

versuch mal dieses:
PHP:
$var = 'http://www.domain.co.uk';

if (!false === filter_var($var,FILTER_VALIDATE_URL)) {

	$pattern = '#^(?:http://www\.|www\.)?([^/]+)#';
	preg_match($pattern, $var, $array);
	
	print_r($array);
}
else {
    print 'Keine richtige Url';
}


Habs nicht mit vielen Uri getestet. Wenn was nicht geht, bescheid sagen. ;)
 
Also bei mir kommt direkt die Meldung "keine richtige URL" :)
Auch bei der Domain, welche du eingegeben hast...

Anyway wir haben unser System nun geändert, sprich wir brauchen doch die Subdomain.
Somit können wir jetzt parse_url() nutzen :)
 
Tja nun ist die Frage doch wieder offen :(

Habe die Lösung von Loomis mal getestet, hilft aber ja nur bei www als Subdomain.
Also nochmal genau was ich bräuchte:

Eingabebeispiele:
domain.de
domain.co.uk
http://www.domain.co.uk
subdomain.domain.co.uk
sub2.subdomain.domain.co.uk

Ich bäuchte nun eine Unterscheidung zwischen den ersten beiden und den letzten drei. Die ersten beiden haben keine Subdomain und müssen somit anders behandelt werden.
Das Problem was auftritt ist eben, dass es mehrere Subdomains geben kann oder auch bei .co.uk eben zwei Endungen. So kann ich also nicht nach den Punkten gehen und diese einfach zählen.

Hat jemand nen Vorschlag?
 
Zurück