$zmienna = 'ala ma kota kot ma ale [code=cos]to jest kod tutaj br nie moze sie znajdowac[/code] to jest dalszy tekst';
Po 'obróbce', ten kod powinien wyglądać tak:
$zmienna = 'ala ma kota<br>kot ma ale<br>[code=cos]to jest kod tutaj br nie moze sie znajdowac[/code]<br>to jest dalszy tekst';
Podsumowując, zamiana \n na <br> wszędzie, oprócz tekstów w tagach [code=*]text[/code].
Mam takie coś:
$string = preg_replace("#\[code=([a-zA-Z]+)\](.*?)\[\/code\]#si", (str_replace("\n<br />\n", "\n", '[code=\\1]\\2[/code]')), $string);
najpierw zamieniam wszystkie \n na <br>, a potem niby 'pozbywam' się tego <br> ze środka tagów [code=*][/code]. Niby dlatego, że się nie pozbywam bo to nie działa... Ktoś mnie oświeci, nakieruje?