$text = '[quotee=slawek]asdasdasdas[/quotee] asds asd ds asda sdsad [quotee=jacek]sdsdsdjacek[/quotee]'; //wyrażenie regularne poszukujące: $szukaj10 = "/\[quotee=(.*?)\](.*?)\[\/quotee\]/i"; }
Ten kod wyszukuje mi prawidłowo wszystkie cytaty niestety nie wiem jak się zabrać do ich przetworzenia - prawidłowo. W Manualu znalazłem coś takiego co próbowałem zaadaptować ale niestety nie działa
$input = "plain [quotee=slawek] slawek1 [quotee=marcin] deeper [/quotee] deep [/quotee] plain"; function parseTagsRecursive($input) { $regex = '#\[quotee]((?:[^[]|\[(?!/?quotee])|(?R))+)\[/quotee]#'; $szukaj10 = "/\[quotee=(.*?)\](.*?)\[\/quotee\]/i"; $input = '<div style="margin-left: 10px">'.$input[1].'</div>'; } return $input;//preg_replace_callback($szukaj10, 'parseTagsRecursive', $input); } $output = parseTagsRecursive($input);
Czy możecie coś jasno podpowiedzieć - 3 dzień walczę już z BBCodem i parserem

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Co prawda nie ładnie sam sobie odpowiadać ale postanowiłem, że napisze. Cały dzień dziś myślałem jak to rozwiązać i się zapętliłem. Jadąc samochodem nie patrząc na komputer rozwiązałem problem w kilka minut. Cała sprawa jest prosta, nawet bardzo.
Wystarczy zastosować jeszcze pętle for i wykonać licznik. Poniżej przedstawiam kod jaki napisałem. Temat myślę, że nie jest zamknięty i proponuje o podawanie w odpowiedziach innych ciekawych rozwiązań tego problemu. Pozdrawiam:
for ($i = 0; $i < $match_count; $i++) { $oryginalny_ciag[] = $znalazlem[0][$i]; //$zamienNaciag = '<div>Napisał: '.$znalazlem[1][$i];.'</div>'; $zamienNaciag[] = '<div class="quote_wrapper"><div class="quote_title">Napisał: '.$znalazlem[1][$i].'</div><div class="quote_area">'.$znalazlem[2][$i].'</div></div>'; }