In einem Script soll ein Text à la:
{news mode="short" start="1" limit="5" category="1" order="date" dir="desc"}
durch den Inhalt einer Funktion ersetzt werden. Dies funktioniert mit untenstehendem Ausdruck auch Problemlos:
$array[$an] = @preg_replace("/{cp:news mode=(.*) start=(.*) limit=(.*) category=(.*) order=(.*) dir=(.*)}/","addslashes(news(\\1,\\2,\\3,\\4,\\5,\\6))",$array[$an]);
Jedoch sollen die Parameter "category", "order", und "dir" optional sein. D.h. es soll auch matchen, wenn der String z.B. so aussieht:
{news mode="short" start="3" limit="8"}
Wie kann dies realisiert werden? Auch das Backreferenzing muss dann ja wahrscheinlich geändert werden, oder?
{news mode="short" start="1" limit="5" category="1" order="date" dir="desc"}
durch den Inhalt einer Funktion ersetzt werden. Dies funktioniert mit untenstehendem Ausdruck auch Problemlos:
$array[$an] = @preg_replace("/{cp:news mode=(.*) start=(.*) limit=(.*) category=(.*) order=(.*) dir=(.*)}/","addslashes(news(\\1,\\2,\\3,\\4,\\5,\\6))",$array[$an]);
Jedoch sollen die Parameter "category", "order", und "dir" optional sein. D.h. es soll auch matchen, wenn der String z.B. so aussieht:
{news mode="short" start="3" limit="8"}
Wie kann dies realisiert werden? Auch das Backreferenzing muss dann ja wahrscheinlich geändert werden, oder?
Kommentar