Mailinglisten-Archive |
Stefan Engelhardt wrote: > > Ich will eine Ip-Adresse auf syntaktische Korrektheit überprüfen, also > x.x.x.x, wobei x eben nur die Wert von 0 bis 255 annehmen darf. > > Leider kenne ich mich mit regulärem Ausdrücken überhaupt nicht aus und habe > im Moment auch nicht die Zeit, mich da einzuarbeiten. Kann mir jemand auf > die Sprünge helfen und eine Zeile geben, die ich nur bei mir einbauen muß? das mit einem regulaeren ausdruck zu machen, ist ziemlich umstaendlich, der regulaere ausdruck fuer _eine_ zahl zwischen 0 und 255 wuerde in etwa lauten: /^0*[1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4]$/ eleganter waere es imho, die ip mit dem . zu explodieren und zu schauen, ob die daraus resultierenden strings zahlen zwischen 0 und 255 sind. <? function ip_gueltig ($ip) { $explodiert=explode($ip,"."); if (count($explodiert) != 4) { /* anzahl der oktette schon flachs */ return false; } while(list(,$x)=each($explodiert)) { if !(($x==(int)$x) || (($x >= 0) && ($x <= 255))) { /* x ist nicht im bereich 0-255 oder $x ist kein integer*/ return false; } } return true; } ?> so in etwa. jedoch ist dadurch eine ip noch lang nicht gueltig, denn auch z.b. 0.0.0.0 oder 137.226.251.255 waeren hiermit gueltig. gruss, markus
php::bar PHP Wiki - Listenarchive