Cześć.
Zwracam się z prośbą o pomoc w konstrukcji wyrażenia regularnego dla tekstu[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]
Chcę przy użyciu funkcji preg_replace_callback "posłać" go dalej jako tablicę.
"Wymyśliłem" coś takiego
|\[produkt\](.*?)\[ImagePath\](.*?)\[\/ImagePath\]\s+\[ToolTip\](.*?)\[\/ToolTip\]\s+\[Content1\](.*?)\[\/Content1\]\s+\[Content2\](.*?)\[\/Content2\]\s+\[\/produkt\]|i
ale to nie działa jak powinno.
Z góry dziękuję za wszelką konstruktywną pomoc.
Edycja:
OK, udało mi sie poprawić wyrażenie regularne i działa
|\[produkt\]\w*(\[ImagePath\](.+?)\[\/ImagePath\]?)(\[ToolTip\](.+?)\[\/ToolTip\]?)(\[Content1\](.+?)\[/\Content1\]?)(\[Content2\](.+?)\[/\Content2\]?)\[\/produkt\]|i
W wyniku powyższego otrzymamy
array(9) {
[0]=>
array(2) {
[0]=>
string(229) "[produkt][ImagePath]ścieżka do obrazka[/ImagePath][ToolTip]Opis po wskazaniu na obrazku[/ToolTip][Content1]Tekst nad obrazkiem[/Content1][Content2]Długi opis produktu wraz ze znacznikami html[/Content2][/produkt]"
[1]=>
string(238) "[produkt][ImagePath]ścieżka do obrazka P2[/ImagePath][ToolTip]Opis po wskazaniu na obrazku[/ToolTip][Content1]Tekst nad obrazkiem P2[/Content1][Content2]Długi opis produktu P2 wraz ze znacznikami html[/Content2][/produkt]"
}
[1]=>
array(2) {
[0]=>
string(43) "[ImagePath]ścieżka do obrazka[/ImagePath]"
[1]=>
string(46) "[ImagePath]ścieżka do obrazka P2[/ImagePath]"
}
[2]=>
array(2) {
[0]=>
string(20) "ścieżka do obrazka"
[1]=>
string(23) "ścieżka do obrazka P2"
}
[3]=>
array(2) {
[0]=>
string(47) "[ToolTip]Opis po wskazaniu na obrazku[/ToolTip]"
[1]=>
string(47) "[ToolTip]Opis po wskazaniu na obrazku[/ToolTip]"
}
[4]=>
array(2) {
[0]=>
string(28) "Opis po wskazaniu na obrazku"
[1]=>
string(28) "Opis po wskazaniu na obrazku"
}
[5]=>
array(2) {
[0]=>
string(40) "[Content1]Tekst nad obrazkiem[/Content1]"
[1]=>
string(43) "[Content1]Tekst nad obrazkiem P2[/Content1]"
}
[6]=>
array(2) {
[0]=>
string(19) "Tekst nad obrazkiem"
[1]=>
string(22) "Tekst nad obrazkiem P2"
}
[7]=>
array(2) {
[0]=>
string(80) "[Content2]Długi opis produktu wraz ze znacznikami html[/Content2]"
[1]=>
string(83) "[Content2]Długi opis produktu P2 wraz ze znacznikami html[/Content2]"
}
[8]=>
array(2) {
[0]=>
string(59) "Długi opis produktu wraz ze znacznikami html"
[1]=>
string(62) "Długi opis produktu P2 wraz ze znacznikami html"
}
}
Moje pytanie teraz jest anstępujące: Jak zmodyfikować wyrażenie regularne aby otrzymać dwie tablice dziewięcioelementowe, a nie tak jak jest teraz czyli dziewięć dwuelementowych.