Mailinglisten-Archive |
Hallo Dennis,
> From: "Dennis Sterzenbach" <lists at darknoise.de>
> >
> > Wenn nun der Host $host = "bla.domain.com.br" ist, ergibt
> > dies -> com.br ->
> > die Domain mit TLD ist aber -> domain.com.br
> > Die Lösung sollte wirklich für die ganze Welt taugen und
> > nicht nur für den
> > "normal" Fall.
> Dann solltest Du eventuell eine Liste mit TLDs, die mehr als
> einen Part haben dazu pflegen (com.br, com.au).
>
> function getDomainFromHostname($host) {
> // TLDs mit mehr als einem Anteil, in lowercase
> $multipart_tlds = Array('com.br', 'com.au' /* usw. */);
>
> $host_chunks = explode(".", strToLower($host));
>
> $tld = array_pop($host_chunks);
> $domain = array_pop($host_chunks);
> $domain .= "." . $tld;
>
> while (in_array($domain, $multipart_tlds)) {
> $dpart = array_pop($host_chunks);
> $domain = $dpart . "." . $domain;
> }
>
> return $domain;
> }
>
Deine Funktion ist wirklich super und liefert für 99.995% sicher auch die
richtige Domain. Vielen Dank!
Nur zur vervollständigkeitshalber müsste man nun noch die Spezialfälle
beachten, wo es z.B. http://co.za/ gibt und auch http://pretoria.co.za/ !
(Bei beiden handelt es sich um ausschliessliche Domainnamen ohne Host und
Subdomain Namen)
Greetings,
/IV/\N
php::bar PHP Wiki - Listenarchive