uepselon: (Perl) (RegExp) Frage zu einem regulären Ausdruck.

Beitrag lesen

Hallo Forum und RegExp Experten,

ich habe ein kleines Problem. Bin gerade dabei ein kleines PHP System zu prgrammieren, welches PHP Code und HTML Code trennt.
in HTML sind statt PHP Variablen nur solche Konstrukte zu sehen, z.B.:

{phpvar}

im PHP Code kann dann die Variable gesetzt werden, z.B.

str_replace("{phpvar}", "$value", $file_as_string);

klappt ja auch ganz gut. Nur ist das System eben ein wenig komplexer und es kann schon mal vorkommen das die ein oder andere {phpvar} im HTML Code nicht ersetzt wird, deshlab will ich zum Schluss alle übrigen {phpvars} auskommentieren. Hab folgendes versucht:

preg_replace("/({.*?})/", "<!-- {\1} -->",  $bufstr);

Klappt auch, aber das große Problem ist, dass evtl. JavaScript Code oder CSS Style der in {} Klammern steht auch auskommentiert wird, dass will ich nicht!

Wie modifiziere ich meinen regulären Ausdruck damit wirklich nur {phpvar} auskommentiert wird, d.h. soblad zwischen { und } ein Leerzeichen, oder sonst ein Sonderzeichen steht, darf es nicht ersetzt werden.

2. Frage, wie ersetzte ich _alle_ {phpvars} in einem Rutsch? mit /../a oder wie ging das noch gleich?

Gruß,
ueps