Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z BBCode
Forum PHP.pl > Forum > PHP
brian94
Mam taki skrypt do BBCode:
  1. <?
  2. // bbcode
  3. Function bbcode($str){
  4.  
  5. // usun zbedne
  6. $str=htmlspecialchars(trim($str));
  7.  
  8. // Kolorowanie składni
  9. $str=preg_replace_callback("#[php](.*?)[/php]#si", "bbcode_phpCode", $str);
  10.  
  11. // Odnośnik, otwieranie w nowym oknie
  12. $str = preg_replace("#(.*?)?(.*?)#si", "<a href=\"12\" target=\"_blank\">12</A>", $str);
  13.  
  14. // Odnośnik, otwieranie w nowym oknie, definiowanie treści odnośnika
  15. $str = preg_replace("#(.*?)#si", "<a href=\"2\" target=\"_blank\">3</A>", $str);
  16.  
  17. // Odnośnik, otwieranie w tym samym oknie
  18. $str = preg_replace("#[url2](.*?)?(.*?)[/url2]#si", "<a href=\"12\">12</A>", $str);
  19.  
  20. // Odnośnik, otwieranie w tym samym oknie, definiowanie treści odnośnika
  21. $str = preg_replace("#[url2=(.*?)?(.*?)](.*?)[/url2]#si", "<a href=\"2\">3</A>", $str);
  22.  
  23. // Pogrubiony tekst
  24. $str = preg_replace("#(.*?)#si", "<b>1</b>", $str);
  25.  
  26. // Pochylony tekst
  27. $str = preg_replace("#(.*?)#si", "<i>1</i>", $str);
  28.  
  29. // Podkreślony tekst
  30. $str = preg_replace("#(.*?)#si", "<u>1</u>", $str);
  31.  
  32. // Pomniejszanie tekstu
  33. $str = preg_replace("#[sm](.*?)[/sm]#si", "<small>1</small>", $str);
  34.  
  35. // Powiększanie tekstu
  36. $str = preg_replace("#[big](.*?)[/big]#si", "<big>1</big>", $str);
  37.  
  38. // Wyśrodkowanie tekstu
  39. $str = preg_replace("/
    (.*?)
    /si"
    , "<center>1</center>", $str);
  40.  
  41. // Kolor tekstu
  42. $str = preg_replace("#(.*?)#si", "<span style=\"color:2\">3</span>", $str);
  43.  
  44. // Wielkość czcionki
  45. $str = preg_replace("#(.*?)#si", "<span style=\"font-size:2\">3</span>", $str);
  46.  
  47. // Obrazek
  48. $str = preg_replace("#[img](.*?)[/img]#si", "<img src=\"1\" border=\"0\" alt=\"Obrazek\" />", $str);
  49.  
  50. // Kod
  51. $str = preg_replace("#[code](.*?)[/code]#si", "<pre class=\"kod\"><u><b>Kod:</b></u><br/>1</pre>", $str);
  52.  
  53. // kolejny wiersz
  54. $str=nl2br($str);
  55.  
  56. // kodowanie kodu
  57. $str = preg_replace_callback("#<base64>(.*?)</base64>#si", "base64decode", $str);
  58.  
  59. // js
  60. $str = preg_replace_callback("#<(.*?)javascript(.*?)>#si", "bbcode_js", $str);
  61.  
  62. // wynik
  63. return $str;}
  64.  
  65.  
  66. function bbcode_phpCode($code){
  67. if(!$code){return;}
  68. $code[1]=trim($code[1]);
  69. $code[1]=html_entity_decode($code[1]);
  70. $code[1]=str_replace('<br />','',$code[1]);
  71. $kod=highlight_string($code[1], TRUE);
  72. $numerki=explode('|',bbcode_numeruj($kod));
  73. if(strtoupper(substr(PHP_OS, 0, 3)) === 'WIN'){
  74. $sys[0]='<code><span style="color: #000000">'."\n";
  75. $sys[1]=chr(10).'</code>';
  76. }else{
  77. $sys[0]="<font color=\"#000000\">\n";
  78. $sys[1]="\n</code>";
  79. }
  80. $kod=str_replace(array($sys[0],$sys[1]),array('<code><font color="#000000">','</code>'),$kod);
  81. $ret='<div class="php"><div class="lang"><b>Kod PHP ('.$numerki[0].' lini):</b></div><div class="container"><table class="block"><tr><td class="linenumber" style="font-size: 12px;">'.$numerki[1].'</td><td width="100%" style="font-size: 12px;"><pre class="pcode"><span class="html"><div style="line-height: 15px">'.$kod.'</div></span></pre></td></tr></table></div></div>';
  82. return '<base64>'.base64_encode($ret).'</base64>';}
  83.  
  84. // zakodowanie kodu
  85. Function base64decode($str){
  86. return base64_decode(substr($str[0],8,strlen($str[0])-8));
  87. }
  88.  
  89. // numeracja
  90. Function bbcode_numeruj($str){
  91. $linia=explode('<br />', $str);
  92. $l=count($linia);
  93. for($i=1;$i<=$l;$i++){
  94. $ret.=$i.'<br>';
  95. }
  96. return $l.'|'.$ret;}
  97.  
  98. // anti js
  99. Function bbcode_js($str){
  100. if(!eregi('<a href=\"javascript:mailto:mail('',$str[0])){
  101. return str_replace('javascript','java_script',$str[0]);
  102. }else{return $str[0];}}
  103. ?>

Jak wpisuje kod w znacznikach [php], np:
Kod
<? include(plik.php) ?>

Na końcu dopisuje mi taki znaczki:
Cytat
�{�


Dlaczego tak się dzieje? Jak temu zaradzić?
loganek
dziwne, bo ja robię tak:
Kod
[php]<? include(plik.php) ?>[/php]

i działa normalnie
MajareQ
nie powinno być:

Cytat
<? include(plik.php) ?>


tylko:

  1. <?php
  2. include('plik.php');
  3. ?>
crackcomm
heh, kolega pewnie tak robil tylko zle napisal ;>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.