Avatar billede leif Seniormester
17. januar 2010 - 20:37 Der er 1 kommentar og
1 løsning

Split $_SERVER["HTTP_HOST"]

Hej,

Jeg har en udfordring, men jeg skal splitte $_SERVER["HTTP_HOST"] således at jeg vil få domain.tld uanset hvad der står foran.

Eksempel:
kurt.ejner.domain.tld giver domain.tld
www.domain.tld giver stadig domain.tld


Nogen som har en god idé ?

/Leif
Avatar billede nicklasb Nybegynder
17. januar 2010 - 21:05 #1
Et mindre problem, er at nogle top-level domæner er sammensat af to led - for eksempel .co.uk.
Du kan derfor ikke finde nogen "matematisk" algoritme, til at beregne domænet fra sub-domæner, uden at vedligeholde en liste over domænerne med mere end ét led.

Du kan eventuelt prøve PHP-funktionen parse_url(...);

$url = parse_url($_SERVER['HTTP_HOST']);
$domain = $url['host'];
echo $domain;

Alternativt, hvis det er i orden at kun de sidste to led udgør domænet, kan du prøve med:

preg_match("/[^.]*\.[^.]*$/", $_SERVER['HTTP_HOST'], $domain);
echo $domain[0];

eller simpelthen blot:

$pieces = explode(".", strrev($_SERVER['HTTP_HOST']));
echo strrev($pieces[0] . "." . $pieces[1]);

Hvis du er frisk på selv at vedligeholde en liste over top-level domæner, skal du ud i noget med et preg_match, som det ovenfor, hvor du så sammensætter det sidste led af en selector på top-level domænerne - altså noget i retningen af (co\.uk|gc\.ca|...)
Avatar billede leif Seniormester
17. januar 2010 - 21:26 #2
Umiddelbart kan jeg sagtens bruge den sidste da til det formål jeg skal bruge det til.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester