Witam
Napisałem sobie taki bbcode do kolorowania kodu php:

  1. <?php
  2. function phpCode($str){
  3. $str[1] = str_replace('&lt;', '<', $str[1]); 
  4. $str[1] = str_replace('&gt;', '>', $str[1]); 
  5. $str[1] = str_replace('&quot;', '"', $str[1]); 
  6. $str[1] = str_replace('&amp;', '&', $str[1]);
  7.  
  8.  
  9. $kod = highlight_string($str[1], 1);
  10. $kod = trim($kod);
  11.  
  12. $st = explode('<br />', $str[1]);
  13. $l = count($st);
  14. for($i=1; $i <= $l; $i++)
  15. {
  16. $bb .= $i.'<br />';
  17. }
  18. $kod = str_replace("<code><span style="color: #000000">n", '<code><span style="color: #000000">', $kod);
  19. $kod = str_replace('&lt;</span><span style="color: #0000CC">br </span><span style="color: #006600">/&gt;', '', $kod);
  20. $cod = '<b>Kod php ('.$l.')</b>:<br /><div class="php"><div class="container"><table class="block"><tr><td class="linenumber" style="font-size: 12px; line-height: 13px; padding-top: 2px;">'.$bb.'</td><td width="100%" style="font-size: 12px;"><pre class="pcode"><span class="html"><div style="line-height: 13px">'.$kod.'</div></span></pre></td></tr></table></div></div>';
  21. return $cod;
  22. }
  23.  
  24. function bbcode( $str ) {
  25. $str = preg_replace_callback('#[php](.*?)[/php]#si', 'phpCode', $str);
  26. return $str;
  27. }
  28. ?>


style.css (bbcode generator ze strefyphp.net)
  1. <?php
  2.  
  3. .php,.code{
  4. font-size: 90%;
  5. color: black;
  6. padding:0 10px 0 10px;
  7. margin:0;
  8. width:auto;
  9. overflow:auto;
  10. }
  11. .php .lang,.code .lang{
  12. font-family: Verdana, Arial, Helvetica, sans-serif;
  13. font-size: 100%;
  14. font-weight: 900;
  15. border:0;
  16. border-top: 1px #CCC solid;
  17. border-right: 1px #CCC solid;
  18. width: auto;
  19. margin: 0;
  20. padding: 2px;
  21. }
  22. .php .container,
  23. .code .container
  24. {
  25. width:auto;
  26. overflow:scroll;
  27. }
  28. html>body .php .container,
  29. html>body .code .container
  30. {
  31. width:auto;
  32. overflow:auto;
  33. }
  34. .lang{color: white;}
  35. .php .container .block,
  36. .code .container .block
  37. {
  38. font-size:12px;
  39. font-family: monospace;
  40. background-color: white;
  41. border:0;
  42. border-bottom: 1px #CCC solid;
  43. border-right: 1px #CCC solid;
  44. width:auto;
  45. margin:0;
  46. padding:0;
  47. }
  48. .php .container .block .linenumber,
  49. .code .container .block .linenumber
  50. {
  51. font-size:12px;
  52. font-family: monospace;
  53. color: black;
  54. background-color: #EEE;
  55. padding:0;
  56. margin:0;
  57. padding-left:10px;
  58. padding-right:10px;
  59. text-align:right;
  60. vertical-align:top;
  61. }
  62. .php .container .block .pcode,
  63. .code .container .block .pcode
  64. {
  65. width:100%;
  66. overflow: scroll;
  67. white-space:normal;
  68. }
  69.  
  70. html>body .php .container .block .pcode,
  71. html>body .code .container .block .pcode
  72. {
  73. width:auto;
  74. overflow: auto;
  75. white-space:pre;
  76. }
  77. .php .container .block .pcode,
  78. .code .container .block .pcode
  79. {
  80. padding:0;
  81. padding-left:3px;
  82. margin:0;
  83. border:0;
  84. }
  85.  
  86. ?>


No i mam problem z <br />
Bo jeśli w kodzie do pokolorowanie jest <br />To też go uwzględnia w rozdzielaniu linii i robi się więdzej lini niż potrzeba.
A druga sprawa to rozjeżdżanie się.
Np gdy skrypt do pokolorowanie ma 3 linijki to wysztko jest ok.
Ale gdy ma troche więcej to sie zaczyna nieruwno układać w poziomie. Np jest linia 5 a w połowie wysokości zaczyna się tekst ;/
Kombinuje juz z tym cały dzień i nie umie sobie dać rady ;/
Z góry thx za poprawki