Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Kolorowanie składki geshi ale jeden problem :(, problem z kodem !
Forum PHP.pl > Forum > Przedszkole
kt1
Witam
używam do kolorowania składni geshi
ale jak używam to zawsze koloruje wszystko
teksty php i tak dalej
a jak zrobić żeby kolorował tylko php questionmark.gif żebym dał np: <php> kod php </php>
czy coś takiego ale nie wiem od czego mam się zabrać proszę o pomoc
strife
Wyrażenia regularne, preg_replace_callback" title="Zobacz w manualu PHP" target="_manual.
kt1
Mozę bardziej pod powiecie questionmark.gif jak narazie tak samo nie widziałem jak wcześniej :]

help

ehh znalazłem na stronie jeden bbcode
i nie wiem jak wykozrzystać go
podaje kod
  1. <link rel="stylesheet" href="styl.css" type="text/css">
  2. <?
  3. // bbcode
  4. Function bbcode($str){
  5.  
  6. // usun zbedne
  7. $str=htmlspecialchars(trim($str));
  8.  
  9. // Kolorowanie składni
  10. $str=preg_replace_callback("#[php](.*?)[/php]#si", "bbcode_phpCode", $str);
  11.  
  12. // Odnośnik e-mail(własne definiowanie wyświetlanego tekstu)
  13. $str = preg_replace("#[email=([a-z0-9-_.]+?)@([w-]+.([w-.]+.)?[w]+)?(.*?)](.*?)[/email]#i", "<a href="mailto:1@2">5</a>", $str);
  14.  
  15. // Pogrubiony tekst
  16. $str = preg_replace("#(.*?)#si", "<b>1</b>", $str);
  17.  
  18. // Pochylony tekst
  19. $str = preg_replace("#(.*?)#si", "<i>1</i>", $str);
  20.  
  21. // Podkreślony tekst
  22. $str = preg_replace("#(.*?)#si", "<u>1</u>", $str);
  23.  
  24. // Pomniejszanie tekstu
  25. $str = preg_replace("#[sm](.*?)[/sm]#si", "<small>1</small>", $str);
  26.  
  27. // Powiększanie tekstu
  28. $str = preg_replace("#[big](.*?)[/big]#si", "<big>1</big>", $str);
  29.  
  30. // Akapit
  31. $str = preg_replace("/[p](.*?)[/p]/si", "<p>1</p>", $str);
  32.  
  33. // Akapit z wyrównaniem
  34. $str = preg_replace("#[p=(http://)?(.*?)](.*?)[/p]#si", "<p align="2">3</p>", $str);
  35.  
  36. // Spacja
  37. $str=str_replace('[spacja]','&nbsp;',$str);
  38.  
  39. // Znaki specjalne
  40. // znaki specjalne
  41. $str = str_replace('&amp;plusmn;', '&plusmn;', $str);
  42. $str = str_replace('&amp;trade;', '&trade;', $str);
  43. $str = str_replace('&amp;bull;', '&bull;', $str);
  44. $str = str_replace('&amp;deg;', '&deg;', $str);
  45. $str = str_replace('&amp;copy;', '&copy;', $str);
  46. $str = str_replace('&amp;reg;', '&reg;', $str);
  47. $str = str_replace('&amp;hellip;', '&hellip;', $str);
  48.  
  49. // błędne kodowanie m.in. z phpmyadmina
  50. $str = str_replace('&amp;#261;', 'ą', $str);
  51. $str = str_replace('&amp;#263;', 'ć', $str);
  52. $str = str_replace('&amp;#281;', 'ę', $str);
  53. $str = str_replace('&amp;#322;', 'ł', $str);
  54. $str = str_replace('&amp;#347;', 'ś', $str);
  55. $str = str_replace('&amp;#378;', 'Ľ', $str);
  56. $str = str_replace('&amp;#380;', 'ż', $str);
  57.  
  58. // znaki specjalne z m$ word
  59. $str = str_replace('&amp;#177;', 'ą', $str);
  60. $str = str_replace('&amp;#8217;', ''', $str);
  61. $str = str_replace('&amp;#8222;', '"', $str);
  62. $str = str_replace('&amp;#8221;', '"', $str);
  63. $str = str_replace('&amp;#8220;', '"', $str);
  64. $str = str_replace('&amp;#8211;', '-', $str);
  65. $str = str_replace('&amp;#8230;', '&hellip;', $str);
  66.  
  67. // Odnośnik e-mail
  68. $str = preg_replace("#([a-z0-9-_.]+?)@([w-]+.([w-.]+.)?[w]+)#i", "<a href="mailto:1@2">1@2</a>", $str);
  69.  
  70. // kolejny wiersz
  71. $str=nl2br($str);
  72.  
  73. // kodowanie kodu
  74. $str = preg_replace_callback("#<base64>(.*?)</base64>#si", "base64decode", $str);
  75.  
  76. // js
  77. $str = preg_replace_callback("#<(.*?)javascript(.*?)>#si", "bbcode_js", $str);
  78.  
  79. // wynik
  80. return $str;}
  81.  
  82.  
  83. function bbcode_phpCode($code){
  84. if(!$code){return;}
  85. $code[1]=trim($code[1]);
  86. $code[1]=html_entity_decode($code[1]);
  87. $code[1]=str_replace('<br />','',$code[1]);
  88. $kod=highlight_string($code[1], TRUE);
  89. $numerki=explode('|',bbcode_numeruj($kod));
  90. if(strtoupper(substr(PHP_OS, 0, 3)) === 'WIN'){
  91. $sys[0]='<code><span style="color: #000000">'."n";
  92. $sys[1]=chr(10).'</code>';
  93. }else{
  94. $sys[0]="<font color="#000000">n";
  95. $sys[1]="n</code>";
  96. }
  97. $kod=str_replace(array($sys[0],$sys[1]),array('<code><font color="#000000">','</code>'),$kod);
  98. $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>';
  99. return '<base64>'.base64_encode($ret).'</base64>';}
  100.  
  101. // zakodowanie kodu
  102. Function base64decode($str){
  103. return base64_decode(substr($str[0],8,strlen($str[0])-8));
  104. }
  105.  
  106. // numeracja
  107. Function bbcode_numeruj($str){
  108. $linia=explode('<br />', $str);
  109. $l=count($linia);
  110. for($i=1;$i<=$l;$i++){
  111. $ret.=$i.'<br>';
  112. }
  113. return $l.'|'.$ret;}
  114.  
  115. // anti js
  116. Function bbcode_js($str){
  117. if(!eregi('<a href="java script:mailto:mail('',$str[0])){
  118. return str_replace('javascript','java_script',$str[0]);
  119. }else{return $str[0];}}
  120. ?>

i nie wiem jak zrobić aby on działał proszę o pomoc !
siemakuba
Chyba za bardzo kombinujesz. Co to znaczy, że geshi koloruje więcej niż powinien? Może zamiast pliku php, który ma zostać pokolorowany i wyświetlony dajesz mu jako źródło adres URL?
Nie wiem, geshi jest bardzo proste w użyciu, wystarczy mu przekazać co ma pokolorować i on to zrobi. Wniosek: nie to co trzeba przekazujesz do geshi. Możesz pokazać co tam pchasz do kolorowania i w jaki sposób?

pozdr.
kt1
Zrobiłem już na BBCODE proste jest i fajne smile.gif
a co do geshi wiem ze jest łatwe ale chciałem inaczej zrobić
temat do zamknięcia !
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.