Avatar billede tanzaweb Nybegynder
16. juni 2005 - 14:23 Der er 10 kommentarer og
1 løsning

php - like fra en $tjek

Hej
Jeg forsøger at lave en søgning om en endelse ender på .dk, og har prøvet noget ligende, men kan ikke får det til at virke.

$tjek = $_REQUEST['land'];
        if($tjek == '%.dk'){
        echo "Det er et DK";
            }
            else{
            echo "Det er et andet domæne";
            }

Nogen forslag synes ikke jeg kan finde det på php.net
Avatar billede delphinarious Nybegynder
16. juni 2005 - 14:24 #1
if(substr($tjek,-3,3) '.dk'){
  echo "Det er et DK";
} else{
  echo "Det er et andet domæne";
}
Avatar billede delphinarious Nybegynder
16. juni 2005 - 14:25 #2
Sorry, sådan her selvfølgeligt:

if(substr($tjek,-3,3) == '.dk'){
  echo "Det er et DK";
} else{
  echo "Det er et andet domæne";
}
Avatar billede fixxxer Nybegynder
16. juni 2005 - 14:30 #3
Umiddelbart ville jeg bruge str_pos()

http://dk2.php.net/manual/en/function.strpos.php

$pos = str_pos($_REQUEST['land'], '.dk');
$len = 3; //.dk er 3 karaktér langt.. kunne også findes ved strlen('.dk');
$all_len = strlen($_REQUEST['land']);

if ($pos === ($all_len - $len))
{
  //slutter på .dk
}
Avatar billede fixxxer Nybegynder
16. juni 2005 - 14:30 #4
Doh, havde slet ikke tænkt på substr()

Den er klart den smarteste at bruge.. min er tydeligvis en omvej !-)
Avatar billede delphinarious Nybegynder
16. juni 2005 - 14:31 #5
;-)
Avatar billede delphinarious Nybegynder
16. juni 2005 - 14:33 #6
... og så ville jeg nok tilføje strtolower, så den ikke slog fejl på grund af store bogstaver.. altså:
if(strtolower(substr($tjek,-3,3)) == ".dk"){
  echo "Det er et DK";
} else{
  echo "Det er et andet domæne";
}
Avatar billede Slettet bruger
16. juni 2005 - 16:05 #7
Hvis du vil finde ud af hvad den slutter på kan du jo også

echo preg_replace("/\.\w$/", "$1", $tjek);
Avatar billede Slettet bruger
16. juni 2005 - 16:05 #8
hov..

echo preg_replace("/(\.\w$)/", "$1", $tjek);
Avatar billede Slettet bruger
16. juni 2005 - 16:06 #9
$tjek = $_REQUEST['land'];
$land = preg_replace("/(\.\w$)/", "$1", $tjek);
if($land == '.dk'){
    echo "Det er et DK";
    }
    else{
    echo "Det er et andet domæne: ". $land;
    }
Avatar billede tanzaweb Nybegynder
16. juni 2005 - 16:37 #10
Hej Igen

delphinarious dit virker fint, men efter at også at have set en kommentar fra wicez så tror jeg egentlig det er bedre. Du skal dog have pointene, men hvis jeg også skal tildele wicez point.

Har dog ikke fået det til at virke helt wicez den bliver ved med at sige "det er et andet domæne: sventrup.dk

Det den egentlig skal gøre er at tjekke hvad den ender på som du også har skrevet men det gør den ikke
Avatar billede delphinarious Nybegynder
17. juni 2005 - 08:25 #11
Tak for points.

Kan ikke lige se hvorfor wizez' løsning skulle være bedre. Der er vel ingen grund til at aktivere en search-and-replace-funktion (preg_replace), når du ikke vil replace noget. Du vil jo bare vide hvad de sidste 3 tegn er - så er det vel mest nærliggende at benytte en funktion, der returnerer en del af en streng - som substr, f.eks. :-)

Men tak for points i alt fald.
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