Autor Zpráva
Senky
Profil
Zdravím, mám menší problém s parsovaním bb kódu code.
Je to však špecifický problém, keďže používam ajax na zaslanie textu v textarea, ktorý sa potom sparsuje použitím preg_replace a do miesta pre náhľad sa automaticky vloží. Ako však odosielam text, použitím farby v tvare #xxxxxx, # sa v php použije ako začiatok komentáru. Tak som bol nútený nahradiť to niečim iným, ešte pred odoslaním teda použijem js funkciu replace takto:
replace (/#/g, "ˆ")

Je to dosť nepoužívaný znak, tak som vybral tento. Potom pri návrate z php (ešte pred tým, ako sa text vloží do určeného miesta) zase použijem funkciu replace na vrátenie znaku # takto:
replace (/ˆ/g, "#")

Ono to samozrejme vráti znak #, ale color tag nie je sparsovaný. v php to vyzerá takto:
preg_replace('!\[color=(ˆ[0-9a-f]{6}|[a-z\-]+)\](.*?)\[/color\]!is', "<span style=\"color:\\1\">\\2</span>", $string)

nechápem teda, prečo to nezmení...
Vedel by mi niekto poradiť?
Ďakujem...
Jan Tvrdík
Profil
Senky:
# sa v php použije ako začiatok komentáru
O tom dost pochybuji. Nebo to snad pojíždíš evalem?
Senky
Profil
Nie, ale posielam to cez POST vo funkcii open v js, a neviem prečo, ale v php to berie iba $_GET. No a ako som to zistil - ak som napísal do textarey
[color=#000000]text[/color] a ďalší text

tak to po sparsovaní skončilo v náhľade takto:
[color=

teda som usúdil, že sa to použije ako komentár, nie?
Senky
Profil
Tak už to funguje, neviem síce ako, ale niečo som pomenil a už to funguje.
Ďakujem za ochotu...

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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