login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Preg_replace voor if/else condition

Offline Romic - 28/06/2009 19:21
Avatar van RomicNieuw lid Ik ben bezig met een hele kleine template engine voor mezelf. (Er zijn er al heel veel, ik doe het dus ook vooral om ervan te leren.)
Er is al heel veel gelukt, maar nu ben ik toch al een paar uur bezig met dit probleem:
Ik heb dus een .html bestand dat 'geparsed' moet worden, dit gebeurt met de volgende regex:
  1. $parsed=preg_replace_callback('/<!--\{if(\s)([a-zA-Z0-9_\[\]]*)\}-->(.+)<!--\{endif\}-->/isx',array(&$this,'whatif'),$parsed);
de functie 'whatif' kijkt ofdat de var bestaat, en returned de code indien ja, en returned null indien die niet bestaat.
En een html bestand ziet er dan zo uit:
  1. <!--{if get_regerror}-->
  2. ...code...
  3. <!--{endif}-->
Dit werkt prefect, totdat je meerdere if conditions in het html bestand zet.

VB:
  1. <!--{if get_regerror}-->
  2. ...code1...
  3. <!--{endif}-->
  4. <!--{if anderevar}-->
  5. ...code2...
  6. <!--{endif}-->


Dan gaat de regex vanaf code 1 t.e.m code2 (dus alles ertussen ook) meegeven aan de functie, en dan krijg je uiteraard errors.Ik heb al geprobeerd te kijken naar andere template engines (smarty,..) maar die zijn zo uitgebreid dat ik nooit het juiste stukje code vindt.
Hoe los ik dit op?

1 antwoord

Gesponsorde links
Offline darsstar - 28/06/2009 20:55
Avatar van darsstar Nieuw lid van (.+) maak je (.+?)
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.178s