Hello,

Ik ben al een tijdje bezig met vogelen maar kom er helaas niet uit en hoop dat jullie mij hierbij kunnen helpen. Ik maak gebruik van de volgende reguliere expressie:

$customPages = preg_match_all('%\[pagina\](.*?)\[\/pagina\]%is', $pageContent, $customPageMatch);


Met deze expressie lees ik "maatwerk" pagina's in welke PHP bevatten en HTML uitspuwen. Wanneer een pagina uit de database de tags [pagina]test[/pagina] bevat wordt de pagina "test" ingeladen. Pagina's worden gewijzigd via een textarea met TinyMCE en hier ontstaat het probleem. De editor zet er graag een <p></p> tag omheen. Logisch aangezien de editor denkt dat het een nieuwe paragraaf bevat.

In bovenstaande expressie wil ik dus ook heel graag ervoor zorgen dat indien er <p> tags om een [pagina] heen staan dat deze worden meegenomen inclusief whitespace zoals:

<p>
    [pagina]test[/pagina]</p>


Kunnen jullie me op weg helpen met het toevoegen van de <p> tags aan de expressie indien aanwezig?

Alvast dank

Joost
{(?:<p>\s*)?\[pagina\](.*?)\[\/pagina\](?:\s*<p>)?}is

zoiets moet het denk ik worden.
Thanks Wouter, hier was ik al een tijdje naar op zoek.

Kleine toevoeging:

{(?:<p>\s*)?\[pagina\](.*?)\[\/pagina\](?:\s*<\/p>)?}is 


<\/p> i.p.v. <p> op het einde. Dan worden ook afsluitende tags gevonden.

Works like a charm! Nogmaals dank!

Gr

Joost
Joost J op 14/07/2013 14:32:08

Ik ben al een tijdje bezig met vogelen..


Dat hier nog geen belg op gereageerd heeft zeg..:-D

Reageren