phpbar.de logo

Mailinglisten-Archive

[php] Unterscheidung zwischen Domain Name und Host Name

[php] Unterscheidung zwischen Domain Name und Host Name

Dennis Sterzenbach lists at darknoise.de
Die Sep 30 15:37:27 CEST 2003


> > $host_chunks = explode(".", $host);
> > $tld    = array_pop($host_chunks);
> > $domain = array_pop($host_chunks);
> > $domain .= "." . $tld;
> >
> > Hab's nicht getestet, sollte aber so gehn.
>
> Vielen Dank!
>
> 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;
}


--
 Dennis




php::bar PHP Wiki   -   Listenarchive