Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/03/2007, 11:44
okram
Invitado
 
Mensajes: n/a
Puntos:
BBcode y [PHP] [/PHP]

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
Código PHP:
 y 
en vez de [ /PHP] y [ PHP]

un saludo, y gracias al que se tome el tiempo de leer esto

Última edición por okram; 17/03/2007 a las 12:04 Razón: reescribiendo