Foros del Web » Programando para Internet » PHP »

Bbcode

Estas en el tema de Bbcode en el foro de PHP en Foros del Web. hola, estoy haciendome un bbcode en php y tengo un problema cuando quiero aplicar una funcion a una parte.. esta es la funcion del bbcode ...
  #1 (permalink)  
Antiguo 09/03/2006, 13:28
Avatar de Wdeah  
Fecha de Ingreso: julio-2005
Ubicación: Argentina
Mensajes: 109
Antigüedad: 18 años, 9 meses
Puntos: 0
Sonrisa Bbcode

hola, estoy haciendome un bbcode en php y tengo un problema cuando quiero aplicar una funcion a una parte.. esta es la funcion del bbcode

Código PHP:
<?
function bbparse($mensaje) {

$buscar = array(
'#\[B\](.+?)\[\/B\]#is',
'#\[I\](.+?)\[\/I\]#is',
'#\[U\](.+?)\[\/U\]#is',
'#\[COLOR=([a-z0-9\#]+?)\](.+?)\[\/COLOR\]#mis',
'#\[URL\](.+?)\[\/URL\]#si',
'#\[IMG\](.+?)\[\/IMG\]#si',
'#\[CODIGO\](.+?)\[\/CODIGO\]#si',
'#\[PHP\](.+?)\[\/PHP\]#si'
);

$reemplazar = array(
'<span style="font-weight: bold">$1</span>',
'<span style="font-style: italic">$1</span>',
'<span style="text-decoration: underline;">$1</span>',
'<span style="color: $1">$2</span>',
'<a href="$1" target="_blank">$1</a>',
'<img src="imagen.php?Tipo=img&uri=$1" border="0" alt="" />',
'<div class="Codigo"><div class="Titulos4">Codigo</div><code>$1</code></div>',
'<div class="Codigo"><div class="Titulos4">Codigo PHP</div><code>$1</code></div>'
);
return 
preg_replace($buscar$reemplazar$mensaje);
}
?>
bien, el tema es que cuando quiero aplicar la funcion highlight_string(); a el tag [PHP]
quedaria algo asi

'<div class="Codigo"><div class="Titulos4">Codigo PHP</div><code>'.highlight_string($1).'</code></div>'
y eso me tira error, cosa que COMPRENDO porque las variables no pueden empesar con numero.. pero todo lo demas anda, y empiesa con numero :S que podria hacer?
gracias
  #2 (permalink)  
Antiguo 09/03/2006, 13:58
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Me tope una vez con eso, pero no tengo el código a mano para ver como lo solucione en su momento...
Igual, si googleas un toque seguramente consigas posibles soluciones,....como ser esta:
http://forum.weborum.com/index.php?showtopic=3043

Fijate si eso te ayuda, y si fuera así, pone la solución, seguramente a alguien le ayudara en algún momento.

Saludos!
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #3 (permalink)  
Antiguo 09/03/2006, 14:21
Avatar de Wdeah  
Fecha de Ingreso: julio-2005
Ubicación: Argentina
Mensajes: 109
Antigüedad: 18 años, 9 meses
Puntos: 0
no he podido encontrar una solucion, convengamos que tampoco se muy bien con lo que estoy tratando..
nisiquiera se lo que significa esto
$match = array('#\[php\](.*?)\[\/php\]#se');
osea, para que son los # y el #se o #si al final ??
en que cambia si lo modifico ? gracias
  #4 (permalink)  
Antiguo 09/03/2006, 14:25
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Los # son valores que se ponen como delimitadores para las funciones preg, generalmente caracteres que no usaras en el patrón de la regex. Lo que no se que hace es el "se" luego del último # (#se). El resto lo que hace es tomar todo lo que este entre [ php ] y [ / php ].
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #5 (permalink)  
Antiguo 09/03/2006, 14:36
Avatar de Wdeah  
Fecha de Ingreso: julio-2005
Ubicación: Argentina
Mensajes: 109
Antigüedad: 18 años, 9 meses
Puntos: 0
y porque se hace tan dificil hacer el bbcode PHP siempre ;S
lo que hice ahora fue cambiar el #si por el #se y en ves de poner $1 puse \\1
y me tira un error algo asi

Parse error: parse error in d:\appserv\www\czygax\Global.php(241) : regexp code on line 1

Fatal error: preg_replace(): Failed evaluating code...
  #6 (permalink)  
Antiguo 09/03/2006, 14:52
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Intentaste buscar la función que usan los foros? (esta hecha, y corregida contra mil errores...mejor que eso seguro no debe haber).
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #7 (permalink)  
Antiguo 09/03/2006, 15:13
Avatar de Wdeah  
Fecha de Ingreso: julio-2005
Ubicación: Argentina
Mensajes: 109
Antigüedad: 18 años, 9 meses
Puntos: 0
si pero no entiendo nada ;D

$bbcodes['custom']['find']['[php]'] = '#\[php\](<br>|<br />|\r\n|\n|\r)??(.*)(<br>|<br />|\r\n|\n|\r)??\[/php\]#esiU';
$bbcodes['custom']['replace']['[php]'] = "handle_bbcode_php('\\2')";
$bbcodes['custom']['recurse']['php'][0] = array('handler' => 'handle_bbcode_php');

mira lo que hace vbulletin.. se zarpa..
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:05.