Hola, tengo un problema muy serio creo, ya que nisiquera puedo postear bien mis codigos en el foro:
Veran, ando diseñando un sistema bbcode bien simple para mi blog, pero tengo un problema cuando uso [ PHP] y [/ PHP] (similar a este foro), vean estos codigos:
Código PHP:
function blog_phpcode(&$matches) {
global $site_tpl;
$matches[0] = str_ireplace('[ php]','',$matches[0]);
$matches[0] = str_ireplace('[/ php]','',$matches[0]);
$matches[0] = highlight_string($matches[0],TRUE);
$site_tpl->definir('blog_phpcode',$matches[0]);
$matches[0] = $site_tpl->cargar_tpls('blog_phpcode');
return $matches[0];
}
function parse_post(&$msg) {
$a = array(
"/\[i\](.*?)\[\/i\]/is",
"/\[b\](.*?)\[\/b\]/is",
"/\[u\](.*?)\[\/u\]/is",
"/\[img=(.*?)\](.*?)\[\/img\]/is",
"/\[url\]http:\/\/(.*?)\[\/url\]/is",
"/\[url\](.*?)\[\/url\]/is",
"/\[url=http:\/\/(.*?) title=(.*?)\](.*?)\[\/url\]/is",
"/\[url=(.*?) title=(.*?)\](.*?)\[\/url\]/is",
"/\[br\]/is",
);
$b = array(
"<i>$1</i>",
"<b>$1</b>",
"<u>$1</u>",
"<img src=\"$2\" alt=\"$1\"/>",
"<a href=\"http://$1\" target=\"_blank\" title=\"$1\">$1</a>",
"<a href=\"http://$1\" target=\"_blank\" title=\"$1\">$1</a>",
"<a href=\"http://$1\" target=\"_blank\" title=\"$2\">$3</a>",
"<a href=\"http://$1\" target=\"_blank\" title=\"$2\">$3</a>",
"<br />",
);
$msg = preg_replace($a, $b, $msg);
$msg = preg_replace_callback("/\[php\](.*?)\[\/php\]/is", "blog_phpcode", $msg);
nl2br($msg);
return $msg;
}
bueno, me funciona bien, el problema es que cuando dentro de [ php] y [/ php] hay algo como:
Código:
miren este codigo, bbcode:
Código PHP:
etc etc....function blog_phpcode(&$matches) { global $site_tpl; $matches[0] = str_ireplace('[ php]','',$matches[0]); //Pongo [ php] con espacios para que no se descuadre el codigo $matches[0] = str_ireplace('[ /php]','',$matches[0]); $matches[0] = highlight_string($matches[0],TRUE); $site_tpl->definir('blog_phpcode',$matches[0]); $matches[0] = $site_tpl->cargar_tpls('blog_phpcode'); return $matches[0];}
surge un problema, ya que solo me toma esto:
Código:
[php]
etc etc....
function blog_phpcode(&$matches) {
global $site_tpl;
$matches[0] = str_ireplace('[ php]','',$matches[0]);
$matches[0] = str_ireplace('[ /php]
y lo demas no lo procesa...
espero que se haya entendido, aunque.... creo que ni yo entiendo lo que estoy escribiendo
NOTA; en todos los codigos, va
en vez de [ /PHP] y [ PHP]
un saludo, y gracias al que se tome el tiempo de leer esto