Witam.
Napisałem kod który kiedy dodaje nowego posta na swoim forum w miejscu gdzie jest [kodhtml] kod[/kodhtml] wstawia mi kod,
ale chciałem aby również w tym miejscu wyświetlane były wszystkie znaki które wpiszę włącznie z <br/>, no bo przecież to ma być kod,
no i próbowałem zrobić tak:
  1. function BBCode($string){
  2. ...
  3. $wyswiet = addslashes(nl2br(htmlspecialchars("\\1"))) ;
  4. $string = preg_replace("#\[kodhtml\](.*?)\[/kodhtml\]#si",'<blockquote id="kod"><div ALIGN="left" style="width: 700px; height: 300px; overflow: scroll;">' . $wyswiet .'</div></blockquote>',$string);
  5. ...
  6. $string = nl2br($string) ;
  7. return($string);
  8. }
  9.  



wiem że ten kod działa:
  1. <?php echo addslashes(nl2br(htmlspecialchars("<br/>")));?>



Wyświetli mi wtedy kod nowej lini, ale to co ja zrobiłem, nie działa orginalny kod tego co przerabiałem wygląda tak:

  1. $string = preg_replace("#\[kodhtml\](.*?)\[/kodhtml\]#si",'<blockquote id="kod"><div ALIGN="left" style="width: 700px; height: 300px; overflow: scroll;">\\1</div></blockquote>',$string);


Bardzo proszę o pomoc.

Z góry dzięki.winksmiley.jpg

Próbowałem też tak, ale nie wyświetla mi tego kodu z wątku:

  1. $string = preg_replace("#\[kodhtml\](.*?)\[/kodhtml\]#si",addslashes(nl2br(htmlspecialchars("\\1"))),$string);


a jak zrobie tak:
  1. $wyswiet = preg_replace("#\[kodhtml\](.*?)\[/kodhtml\]#si",addslashes(nl2br(htmlspecialchars("\\1"))),$string) ;
  2. $string = preg_replace("#\[kodhtml\](.*?)\[/kodhtml\]#si",'<blockquote id="kod"><div ALIGN="left" style="width: 700px; height: 300px; overflow: scroll;">'.$wyswiet.'</div></blockquote>',$string);



to wyświetla mi cały wątek,(ale kod też i wtedy wszystko działa tylko za dużo wyświetla)