ugrás a tartalomhoz

BBcode feldolgozás highlight_string()-gel

raczger · 2007. Már. 26. (H), 06.59
nos a következővel próbálkozok most, a highloight-al ( http://hu2.php.net/manual/hu/function.highlight-string.php ) megszínezni azokat a kódokat egy változóban amik két bizonyos karakter között vannak
erre találtam is egyet a php manualon:
  1. <?php  
  2. function bbcode($s)  
  3. {  
  4. $s = str_replace('']\n'''']''$s);  
  5. $match = array('#\[php\](.*?)\[\/php\]#se');  
  6. $replace = array('''<div>'.highlight_string(stripslashes('$1'), true).'</div>''');  
  7. return preg_replace($match$replace$s);  
  8. }  
  9. ?>  
ha csak simán egy szövegrészt akarok vele átalakítani szépen megy is, inkább csak a konvertálással van baj... ha elé teszem akkor html kódban megjelenik ugyebár az egész, ha utána teszem akkor egy kicsit érdekesen, ha pedig hagyom h utána és visszaalakítom az átalakítottakat ott ahol highéight-ot akaok használni úgy is érdekes lesz az eredmény...
pls help me!:) :R
 
1

szerintem rosszul másoltad be...

TeeCee · 2007. Már. 27. (K), 18.28
Itt egy kipróbált darab, kis módosítással az eredeti (php.net) verzióhoz képest:
(pl: nem mindegy, hogy aposztróf, vagy idézőjel...)
  1. <?php  
  2.   
  3. $string = '  
  4. [php]  
  5.   echo "ez".$lenni.EGY_ECHO;  
  6.   print htmlentities("<krumpli>");  
  7. [/php]  
  8. ';  
  9.   
  10. echo bbcode($string);  
  11.   
  12. function bbcode($s)  
  13. {  
  14.    $s = str_replace("]\n""]"$s);  
  15.    $match = array('#\[php\](.*?)\[\/php\]#se');  
  16.    $replace = array("'<div>'.highlight_string(stripslashes('<?php '.'$1'.' ?>'), true).'</div>'");  
  17.    return preg_replace($match$replace$s);  
  18. }  
  19. ?>