Załózmy mam taki string:
$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
wszędzie, oprócz tekstów w tagach [code=*]text[/code].
Ułożyłem takie coś:
$string = str_replace(array("\n"), array("\n<br />\n"), $string);
$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
, a potem niby 'pozbywam' się tego
ze środka tagów [code=*][/code]. Niby dlatego, że się nie pozbywam bo to nie działa... Ktoś mnie oświeci, nakieruje?