phpbar.de logo

Mailinglisten-Archive

[php] Regex Problem (OT)

[php] Regex Problem (OT)

Thomas Richter php at wwedit.org
Don Mar 11 14:28:13 CET 2004


>1,2,'test',3,'$richtig = true; echo $richtig;'                       => true
>1,2,'test',3,'$richtig = \'fettes essen\''                               => true
>1,2,'test',3,'$richtig = \'"fettes" essen\''                             => true
>1,2,'test',3,'$richtig->essen(\'fettarmes\', \'essen\', true)'    => true
>... auch hier sollten Fehler keine exeption werfen
>sondern korrigiert werden!
>


anders gesagt:

eine liste von komma getrennten werten... ergibt false,
wenn ein feld keine zahl ist und nicht mit ' anfaengt bzw.
aufhoert oder keine zahl ist und mit ' anfaeng und aufhoert
und ' enthaelt, dem kein backslash vorangestellt ist...

;-)

also...

1. mit explode() liste in einzelne felder aufsplitten...
2. jeder feld durchlaufen, und schauen, ob es keine zahl ist
   (is_nan() oder /[^\d]/)
3. diese felder nehmen und trim() anwenden...
4. schauen ob  $str{0} != "'"  ==> ' davor setzen
5. schauen ob $str{strlen($str)-1} != "'" ==> ' dahinter setzen
6. mit regex innerhalb des substring (2. zeichen bis vorletztes
   zeichen) ob ' ohne \ davor auftaucht (/[^\\]'/) ==> addslashes
   machen aus substring machen...

man kann - muss aber nicht alles mit einem regex erschlagen...
mach es besser so, dass es andere auch verstehn... und wenn du
schon probleme mit dem regex hast, dann wird es anderen, die sich
vielleicht mal deinen code anschauen genauso gehen... und das ist
ja nicht so toll... (jeder der das mal machen MUSSTE, weiss das ;-)


gruss

t.r


php::bar PHP Wiki   -   Listenarchive