Avatar billede thingholm.dk Nybegynder
09. oktober 2003 - 19:44 Der er 10 kommentarer og
1 løsning

Behandling af domæne streng

Hej,

Jeg har dette script:

$url_array=parse_url($_SERVER['HTTP_REFERER']);
$checkDomain = $url_array['host'];
echo $checkDomain;

Som spytter hele domænet ud - inkl. www som f.eks. 'www.thingholm.dk'.

Hvordan sætter jeg den til kun at spytte 'thingholm.dk' ud?

VH

Anders Thingholm
Avatar billede fangel Nybegynder
09. oktober 2003 - 20:14 #1
du kan jo bare fjerne fra første '.' af... men et prob. hvis der ikke såt www ;)

dette vil ikke virke ved .co.uk eller andre af den dur

<?php
$domain = 'www.desi-dev.dk';
while(count(explode('.',$domain))>=2){
  $domain = substr($domain, strpos($domain, '.'));
}
echo $domain;
?>

Morten
Avatar billede thingholm.dk Nybegynder
09. oktober 2003 - 20:52 #2
Hmmm, ja jeg kan godt se at det vil være et problem med co.uk, så det duer nok ikke at klippe www væk.

Problemstillingen er at jeg i en DB har en kontrol-streng som f.eks. www.thingholm.dk. Når en bruger sådan kører min applikation tjekker jeg på om den bliver kørt fra http://www.thingholm.dk. Men problemet opstår hvis brugeren går ind på http://thingholm.dk.

Kan man ikke lave en tjek for om domænet er i kontrol-strengen? Dvs. hent kontrol-strengen fra databasen og tjek på om de 2 sidste domæne niveauer er ens (e.g. "dk" og "thingholm").

Så skulle problemet vel være løst.

VH

Anders
Avatar billede fangel Nybegynder
09. oktober 2003 - 20:59 #3
den jeg har lavet taget indtil der kun er 1 punktum tilbage (aka thingholm.dk)

Morten
Avatar billede thingholm.dk Nybegynder
09. oktober 2003 - 21:26 #4
Kan jeg lokke dig til at lave en hvor der tælles baglæns indtil enten www eller http:// ?
Avatar billede fangel Nybegynder
09. oktober 2003 - 21:38 #5
hmmm - lidt sjovere... prøv selv... brug evt strrev (http://php.net/strrev) - denne vender en streng om... ;)

eller strrpos() den søger efter noget - bagfra! (http://php.net/strrpos)

Morten
Avatar billede thingholm.dk Nybegynder
09. oktober 2003 - 22:26 #6
Det blev jeg ikke klogere af :-(
Avatar billede thingholm.dk Nybegynder
09. oktober 2003 - 23:23 #7
Jeg løste mit problem med denne kode (måske ikke det smukkeste):

$url_array=parse_url($_SERVER['HTTP_REFERER']);
$checkDomainOriginal = $url_array['host'];

$levels = explode(".", $checkDomainOriginal);

if ($levels[0] == "www"){
    $checkDomain = $levels[1].".".$levels[2];   
}
else {
    for ($i=0; $i<sizeOf($levels); $i++){
        $string .= $levels[$i].".";
    }
   
    $checkDomain = substr($string, 0, -1);

}
Avatar billede fangel Nybegynder
09. oktober 2003 - 23:26 #8
man kan vel stadig lave fx www.noget.thingholm.dk ;)

men tror ikke du kan komme tættere på, hvis du ikke ved om det er fx .dk (så kan man bruge den jeg skrev tidligere)...

grundet disse .co.nz/.co.uk/.co.au/... ved man aldrig helt om der skal være 1 punktum eller 2 punktummer tilbage før man er 'helt' nede...

Morten
Avatar billede fangel Nybegynder
09. oktober 2003 - 23:28 #9
alternativ rewrite:

<?php
$domain = 'www.desi-dev.dk';

$antal = 2;
if(ereg("\.co\.(nz|au|uk|za)$", $domaine)) $antal = 3;

while(count(explode('.',$domain))>=$antal){
  $domain = substr($domain, strpos($domain, '.'));
}
echo $domain;
?>

kan måske klare det (kan de hedde andet en .co.uk - altså fx .org.uk)

Morten
Avatar billede thingholm.dk Nybegynder
09. oktober 2003 - 23:32 #10
Hej igen,

Super og tak for hjælpen - smider du et svar?

VH

Anders

PS. co.uk osv. - til at starte med skal det kun kunne håndtere danske domæner.
Avatar billede fangel Nybegynder
10. oktober 2003 - 07:43 #11
den sidste burde kunne klare lidt flere ;)

men her er et svaa'r

Morten
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