Autor Zpráva
Pietro
Profil
Dobrý den,
už několik hodin se potím s jedním regulárním výrazem - resp. jeho předělávkou z ereg na preg. Mohli byste mě nakopnout a pomoci? Díky

$data = '{{BOX:2}}                      <div class="box">
                          {{CONTENT}}
                    </div>
                    {{/BOX:2}}

                    {{BOX:5}}
                    <div class="box">
                        <div class="nadpis cerny">
                            <h3><a href="{$kde}magazin/novinky">Novinky</a></h3>
                        </div>
                        {{CONTENT}}
                    </div>
                    {{/BOX:5}}
                    ';
                    
                    $data = ereg_replace('{{BOX:2}}(.+){{CONTENT}}(.+){{/BOX:2}}', '\1'.$content.'\2', $data);


Zkoušel jsem toto:
#{{BOX:2}}(.+){{CONTENT}}(.+){{/BOX:2}}#
#\{\{BOX:2\}\}(.+)\{\{CONTENT\}\}(.+)\{\{/BOX:2\}\}#
#\{\{BOX:2\}\}(\s|.)+\{\{CONTENT\}\}(\s|.)+\{\{/BOX:2\}\}#
#\{\{BOX:2\}\}([^\{]+)\{\{CONTENT\}\}([^\{]+)\{\{/BOX:2\}\}#

a spousty dalších, ale nefugovalo mi to...
Co dělám špatně?

Díky
AM_
Profil
nevidím důvod, proč by to nemělo fungovat, asi to bude nějaká drobnost. Zkus jednodušší matche (matchni třeba jen {{BOX:2}} atd...), abys zjistil, kde přesně je problém.
Keeehi
Profil
Jelikož jde o nahrazení na více řádcích, zkusilo bych na konec přidat písmeno s: "#bla bla bla#s"
Pietro
Profil
Keeehi:
Děkuji Keeehi, tohle pomohlo.

Nakonec je to tedy jen v takové drobnosti až si dovolím říct pitomosti...

Takže nakonec:
#\{\{BOX:2\}\}(.+)\{\{CONTENT\}\}(.+)\{\{/BOX:2\}\}#s

Díky všem za nápady

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0