Autor Zpráva
L0K00
Profil
Dobrý den, potřeboval bych pomoci s tím jak se dá vyřešit následující problém.

Chci to, aby se mi všechny bb kódy převedli naráz na html tagy. Mám tento kód:

        $t = 'Ahoj [c]ab[c]cdd[/c]ee[/c]'
        $najit = array('/\[c\](.*?)\[\/c\]/siU', '/\[i\](.*?)\[\/i\]/siU');                                                                                               
        $dodat = array('<c>\\1</c>', '<i>\\1</i>');
        echo preg_replace($najit, $dodat, $t);

A výsledek je: 'Ahoj <c>ab[c]cdd[/c]ee</c>'

Jak by jste řešili to aby se přeměnili všechny bb kódy. Např. tím, že bych si spočítal kolik se nachází začátečnických tagů a potom bych to tolikrát opakoval. Nebo se nějak dá ta nenažranost oblbnout v tento prospěch?

Děkuji předem za odpovědi, přeji pěkný den.. :)
Tori
Profil
L0K00:
Negujete nenažranost dvakrát (.*? i modifikátor U), takže výsledkem je zase nenažranost. :-) Nechte jen jedno z toho.
L0K00
Profil
Ano to vím, ale když to dám pryč tak se promění nejbližší uzavření a bude to vypadat takhle:

Ahoj <c>ab[c]cdd</c>ee[/c]

Jak docílit aby bylo:

Ahoj <c>ab<c>cdd</c>ee</c>
Tori
Profil
Aha jasně. Mně dobře poradili tady, možná se vám to taky hodí: Převod vnořených bbCode značek do HTML
L0K00
Profil
Vůbec netuším jinak než spočítat vždy ukončovací tagy a potom to tolikrát provést. Co myslíte?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: