Kod
$string = '
cos
{if $i == "5"}
zawartosc 1a
{if}
zawartosc 2
{/if}
zawartosc 1b
{/if}
cos2...
{if 3}
aerg
{/if}
';
cos
{if $i == "5"}
zawartosc 1a
{if}
zawartosc 2
{/if}
zawartosc 1b
{/if}
cos2...
{if 3}
aerg
{/if}
';
Mam podany ciag znakow. Chcialbym dobrac sie do kazdego ze znacznikow od srodka. czyli wpierw
Kod
{if}
zawartosc 2
{/if}
zawartosc 2
{/if}
pozniej
Kod
{if $i == "5"}
zawartosc 1a
{if}
zawartosc 2
{/if}
zawartosc 1b
{/if}
zawartosc 1a
{if}
zawartosc 2
{/if}
zawartosc 1b
{/if}
a nastepnie
Kod
{if 3}
aerg
{/if}
aerg
{/if}
Problem dla mnie nie jest latwy, nie jestem najlepszy z wyrazen.
Mój pattern:
Kod
/\{([a-z]{1,})( (.*?))?\}([^\{].+?)\{\/\\1\}/is
O co chodzi... Wykombinowalem ze wyrazenie ma znalezc {...}{/...} w ktorym moga wystepowac parametry i wartosci czyli np {... id="4"} jakis text {/...} lecz najpierw chce sie dobrac od srodka blokow - nie pytajcie sie czemu. Wiec napisalem wyrazenie ktore pasuje do {...}{/...} oraz moga wystepowac parametry i wartosci i jest super, lecz w wartosciach chce zablokowac wystapienie "{" ... probowalem wyelminowac caly blok {...}...{/...} ale nie udalo mi sie napisac wyrazenia.
Nie wiem czy dobrze wytlumaczylem sytuacje, mysle ze tak. W razie watpliwosci prosze pytac - problem jest dosc trudny jak dla mnie.