/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
preg_match() til at tjekke, om .dk er i en~
Fra : Kim Ludvigsen


Dato : 23-02-11 17:08

Jeg skal have tjekket, om .dk er i en streng, og kan forstå,
at jeg kan bruge preg_match(). Men jeg er blank på regex,
nogen der kan hjælpe mig med løsningen?

Jeg skal have tjekket om .dk forekommer i strengen
$problemside, og ellers skal der meldes spam. Altså noget i
stil med:

if (.dk ikke forekommer i $problemside) {
echo "Die spammer, die";
}
else ...

Jeg ved ikke, hvor i strengen .dk forekommer, da der kan
være indtastet en afsluttende \ eller fx side2.html.

--
Mvh. Kim Ludvigsen
Hjælp til computeren og internettet:
http://kimludvigsen.dk

 
 
Andreas Andersen (23-02-2011)
Kommentar
Fra : Andreas Andersen


Dato : 23-02-11 17:37

Den 23-02-2011 17:08, Kim Ludvigsen skrev:
> Jeg skal have tjekket, om .dk er i en streng, og kan forstå, at jeg kan
> bruge preg_match(). Men jeg er blank på regex, nogen der kan hjælpe mig
> med løsningen?
>
> Jeg skal have tjekket om .dk forekommer i strengen $problemside, og
> ellers skal der meldes spam. Altså noget i stil med:
>
> if (.dk ikke forekommer i $problemside) {
> echo "Die spammer, die";
> }
> else ...
>
> Jeg ved ikke, hvor i strengen .dk forekommer, da der kan være indtastet
> en afsluttende \ eller fx side2.html.

Det behøver du ikke preg_match til. if (!strpos($problemside, ".dk")) {
echo "Die spammer, die"; } burde være nok.

--
Andreas


Bertel Lund Hansen (23-02-2011)
Kommentar
Fra : Bertel Lund Hansen


Dato : 23-02-11 18:48

Andreas Andersen skrev:

> Det behøver du ikke preg_match til. if (!strpos($problemside, ".dk")) {
> echo "Die spammer, die"; } burde være nok.

Det virker (tilfældigvis) som ønsket, men du skøjter hen over et
ret drilagtigt forhold: Hvis nu ".dk" havde kunnet findes i
position 0, ville din kode ikke virke.

Når man bruger strpos(), skal man *altid* bruge typestærkt tjek:

   if (strpos($problemside, ".dk")===false) { ... }

altså 3 gange =. Det bevirker at 0 og false opfattes som to
forskellige værdier.

Et eksempel kunne være søgning i en liste med gruppenavnene på
usenet:

   if (!strpos($groupname, "dk."))
      echo "Det er desværre ikke en dansk gruppe!\n"

Det ville svare forkert på alle de danske grupper.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Kim Ludvigsen (23-02-2011)
Kommentar
Fra : Kim Ludvigsen


Dato : 23-02-11 19:20

Bertel Lund Hansen skrev:

>    if (strpos($problemside, ".dk")===false) { ... }

Det virker fint, tak! (til jer begge)

--
Mvh. Kim Ludvigsen
Undgå faldgruberne, sådan vælger du det rette webhotel:
http://kimludvigsen.dk/tips-internet-websnedker-webhotel.php

Andreas Andersen (23-02-2011)
Kommentar
Fra : Andreas Andersen


Dato : 23-02-11 19:28

Den 23-02-2011 18:47, Bertel Lund Hansen skrev:
> Andreas Andersen skrev:
>
>> Det behøver du ikke preg_match til. if (!strpos($problemside, ".dk")) {
>> echo "Die spammer, die"; } burde være nok.
>
> Det virker (tilfældigvis) som ønsket, men du skøjter hen over et
> ret drilagtigt forhold: Hvis nu ".dk" havde kunnet findes i
> position 0, ville din kode ikke virke.
>
> Når man bruger strpos(), skal man *altid* bruge typestærkt tjek:
>
>    if (strpos($problemside, ".dk")===false) { ... }
>
> altså 3 gange =. Det bevirker at 0 og false opfattes som to
> forskellige værdier.

Hov ja, beklager, det var en fejl.

Hvis jeg havde implementeret strpos, havde jeg nok sat den til at
returnere -1, når strengen ikke findes, det tror jeg havde sparet ganske
mange debuggingtimer på verdensplan.

--
Andreas

Bertel Lund Hansen (23-02-2011)
Kommentar
Fra : Bertel Lund Hansen


Dato : 23-02-11 20:50

Andreas Andersen skrev:

> Hvis jeg havde implementeret strpos, havde jeg nok sat den til at
> returnere -1, når strengen ikke findes, det tror jeg havde sparet ganske
> mange debuggingtimer på verdensplan.

Python er din ven.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Søg
Reklame
Statistik
Spørgsmål : 177577
Tips : 31968
Nyheder : 719565
Indlæg : 6409071
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste