|  | 		    
					
        
         
          
         
	
          | |  | 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
 | 
 |  |  |  |  | 
   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/ |  |  | 
 |  |