[produkt][ImagePath]ścieżka do obrazka[/ImagePath][ToolTip]Opis po wskazaniu na obrazku[/ToolTip][Content1]Tekst nad obrazkiem[/Content1][Content2]Długi <u>opis produktu</u> wraz ze znacznikami <b>html</b>[/Content2][/produkt]
Mam coś takiego, ale... nie do końca działa :|
preg_replace_callback('|\[produkt\](.*?)\[ImagePath\](.*?)\[\/ImagePath\]\s+\[ToolTip\](.*?)\[\/ToolTip\]\s+\[Content1\](.*?)\[\/Content1\]\s+\[Content2\](.*?)\[\/Content2\]\s+\[\/produkt\]|i', array($this, 'add_element_to_xml'), $params[9]);
To co między znacznikami [], [/] to dowolnej długości tekst.
Edycja:
poprawnie działająca konstrukcja wyrażenia:
|\[produkt\]\w*(\[ImagePath\](.+?)\[\/ImagePath\]?)(\[ToolTip\](.+?)\[\/ToolTip\]?)(\[Content1\](.+?)\[/\Content1\]?)(\[Content2\](.+?)\[/\Content2\]?)\[\/produkt\]|i