phpbar.de logo

Mailinglisten-Archive

[php] preg_match Problem

[php] preg_match Problem

Thomas Beckmann php_(at)_phpcenter.de
Tue, 14 Aug 2001 09:11:50 +0200


>><?php
>>$host =3D gethostbyaddr($REMOTE_ADDR);
>>if ( !preg_match ("/.de/i", "$host") || !preg_match ("/.at/i", "$host")=
 || !
>>preg_match ("/.ch/i", "$host") || !preg_match ("/.net/i", "$host")) {
>>    print "Du kommst wohl nicht aus dem deutschsprachigen Raum!";
>>};
>>?>
Noch was: Statt
	preg_match ("/.de/i", "$host")=20
w=FCrde ich
	preg_match ('~\.de~i', $host)=20
schreiben:
Einfache ' bei strings, die keine Variablen und \n oder so enthalten,
denn diese string brauchen nicht von php geparsed zu werden. Keine "
um $host, denn die sind schlicht =FCberfl=FCssig. Tilde statt / als
Begrenzer des RegEx, weil diese viel seltener im zu bearbeitenden
Pattern vorkommen - wenn das Begrenzerzeichen, das Du gew=E4hlt hast, im
RegEx vorkommt, mu=DFt Du es ja auch maskieren, nimm folgenden Ausdruck:
preg_replace('/\/\.\//', '/', ...)=20
ist so
preg_replace('~/\./~', '/', ...)=20
zumindest ein bi=DFchen besser zu =FCbersehen ...


---
Thomas Beckmann, Kiel, Germany
beckmann_(at)_gis.de


php::bar PHP Wiki   -   Listenarchive