Witam używam skryptu BBCode ze strony http://bbcode.strefaphp.net i posiadam pewien problem. Otóż jeśli użyje znacznika bbcode html z tej funkcji to wyświetla mi się następujący błąd:
Warning: html_entity_decode() expects parameter 1 to be string, array given in /home/httpd/testweb/bbcode/bbcode.php on line 106
Funkcję wywołuję w następujący sposób:
  1. <?php
  2. include ("bbcode.php");
  3. $test = "[ html ]< b >Co< / b > [ / html ]";//tylko bez spacji oczywiście
  4. print bbcode($test);
  5. ?>

Oto ta funkcja:
  1. <?php
  2. // bbcode
  3. Function bbcode($str){
  4.  
  5. // usun zbedne
  6. $str=htmlspecialchars(trim($str));
  7.  
  8. // Wykonaj html
  9. $str=preg_replace_callback("#<!--html--><div class='htmltop'>HTML</div><div class='htmlmain'><!--html1-->(.*?)<!--html2--></div><!--html3-->#si", "html_entity_decode", $str);
  10.  
  11. // kolejny wiersz
  12. $str=nl2br($str);
  13.  
  14. // js
  15. $str = preg_replace_callback("#<(.*?)javascript(.*?)>#si", "bbcode_js", $str);
  16.  
  17. // wynik
  18. return $str;}
  19.  
  20.  
  21.  
  22. // anti js
  23. Function bbcode_js($str){
  24. if(!eregi('<a href="java script:mailto:mail('',$str[0])){
  25. return str_replace('javascript','java_script',$str[0]);
  26. }else{return $str[0];}}
  27. ?>

Szukałem w google itd ale nic nie znalazłem a jeśli znalazłem to bez odpowiedzi... Proszę o pomoc.

Problem rozwiązałem sam:

  1. <?php
  2. // bbcode
  3. Function bbcode($str){
  4.  
  5. // usun zbedne
  6. $str=htmlspecialchars(trim($str));
  7.  
  8. // Wykonaj html
  9. $str=preg_replace_callback("#
    1. (.*?)
    #si"
    , "bbcode_genhtmltags", $str);
  10.  
  11. // kolejny wiersz
  12. $str=nl2br($str);
  13.  
  14. // js
  15. $str = preg_replace_callback("#<(.*?)javascript(.*?)>#si", "bbcode_js", $str);
  16.  
  17. // wynik
  18. return $str;
  19. }
  20.  
  21. //html tags
  22. function bbcode_genhtmltags($str){
  23. $str = html_entity_decode($str[1]);
  24. return $str;
  25. }
  26.  
  27. // anti js
  28. Function bbcode_js($str){
  29. if(!eregi('<a href="java script:mailto:mail('',$str[0])){
  30. return str_replace('javascript','java_script',$str[0]);
  31. }else{return $str[0];}
  32. }
  33. ?>

Umiesz liczyć licz na siebie..... smile.gif Pozdrawiam.