Mi problema es el siguiente:
Estoy programando un sistema de noticias, el cual integra varias cosas (usuarios, rangos, etc.) y una de esas cosas es BBCode.
Todo me va bien, menos a la hora de hacer un BBCode que coloree código PHP.
Después de dar los códigos, explico mi problema.
Esta es la función del BBCode:
Código PHP:
function BBcode($texto){
$a = array(
"/\[i\](.*?)\[\/i\]/is",
"/\[b\](.*?)\[\/b\]/is",
"/\[u\](.*?)\[\/u\]/is",
"/\[s\](.*?)\[\/s\]/is",
"/\[img\](.*?)\[\/img\]/is",
"/\[url=(.*?)\](.*?)\[\/url\]/is",
"/\[youtube\](.*?)\[\/youtube\]/is",
"/\[code\](.*)\[\/code\]/se"
);
$b = array(
"<i>$1</i>",
"<b>$1</b>",
"<u>$1</u>",
"<strike>$1</strike>",
"<img src=\"$1\" />",
"<a href=\"$1\" target=\"_blank\">$2</a>",
"<object width=\"400\" height=\"257\">
<param name=\"movie\" value=\"$1\"></param>
<param name=\"allowFullScreen\" value=\"true\"></param>
<embed src=\"$1\" type=\"application/x-shockwave-flash\" allowfullscreen=\"true\" width=\"400\" height=\"257\"></embed>
</object>",
"'<pre>Codigo:</pre> <div style=\"color:#333;border:1px #333 solid;background-color:#999;margin:0;padding:0;\">'.highlight_string(stripslashes('$1'), true).'</div>'"
);
$texto = preg_replace($a, $b, $texto);
$texto = str_replace("/watch?v=", "/v/", $texto);
return $texto;
}
Código PHP:
echo nl2br(BBcode($not['noticia']));
Código PHP:
echo nl2br(BBcode(htmlentities($not['noticia'])));
Código:
Es decir, que se me quedan los < y > y demás signos en simbología HTML.<?php echo "ESTO ES EL ECHO"; ?>
¿Alguna solución? Si necesitáis algo más (código, otra explicación, etc.) avisad.