Foros del Web » Programando para Internet » PHP »

preg_replace

Estas en el tema de preg_replace en el foro de PHP en Foros del Web. Hola !!! Estoy tratando de mdificar un poco una parte del bbcode.php de un foro phpbb para que el texto que está entre lo trabaje ...
  #1 (permalink)  
Antiguo 20/04/2007, 12:23
 
Fecha de Ingreso: mayo-2005
Mensajes: 284
Antigüedad: 18 años, 10 meses
Puntos: 11
preg_replace

Hola !!!
Estoy tratando de mdificar un poco una parte del bbcode.php de un foro phpbb para que el texto que está entre lo trabaje de un modo especial.

Esto es lo que hice:

Código PHP:
$Antes "<a href=\"javascript:void(0);\" onClick=\"newWindow=window.open(\'\',\'latexCode\',\'toolbar=no,location=no,scrollbars=yes,resize=yes,status=no,width=600,height=350\'); newWindow.document.write(\'<HTML><BODY BGCOLOR=#ECE9D8><PRE><FONT FACE=VERDANA SIZE=2 COLOR=red>El codigo LaTeX de la imagen que seleccionó es el siguiente:</FONT><PRE>[tex]";
        
$Medio "[/tex]</PRE><BR><BR></center></BODY></HTML>\');\"><img border=\'0\' src=\"/cgi-bin/mimetex.cgi?%5Creverse%20";
        
$Final "\" \'malign=\'absmiddle\'></a>";
        
$text preg_replace('/\[tex\](.*?)\[\/tex\]/ie'"'$Antes'.'$1'.'$Medio'.rawurlencode('$1').'$Final'"$text); 
Si pongo [tex]x^2[/tex] anda perfecto pero si pongo por ejemplo
[tex]x^2
[/tex]
ya no funciona. De hecho siempre que hay un salto de línea en algún lugar ya no funciona. Si alguien me puede ayudar a modificarlo me hace un gran favor porque me está volando un poco...
Y ya que estamos lo que en realidad quería hacer era esto:
Lo que está entre [tex][/tex] va a parar a un cgi (que crea una imagen gif), que acepta una LINEA de código, por eso no puede haber saltos de líneas en el cgi...
Entonces si se quiere poner algo como
x^2
y^2
Como está ahora hecho habría que hacer:
[tex]x^2[/tex]
[tex]y^2[/tex]
Me gustaría que se pueda hacer simplemente con algo como:
[tex]
x^2
y^2
[/tex]
Para eso en PHP debería agarrar cada línea y crear y pasarsela al cgi por separado, en el ejemplo anterior el cgi se llamaría dos veces generando las dos imágenes para las dos funciones.
Por supuesto que lo ví medio complicado asique no hice nada de eso, pero si alguien se anima dejo abierto el desafío

Saludos !
enri.
  #2 (permalink)  
Antiguo 20/04/2007, 13:58
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: preg_replace

mmmmmmm :/ no se me habia ocurrido puedes ver que te tome los n2blr no se es lo que se me ocurre ahora :P habria que hacerlo con las expresiones regulares que tienes :P ya pensare en algo
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #3 (permalink)  
Antiguo 20/04/2007, 17:16
 
Fecha de Ingreso: mayo-2005
Mensajes: 284
Antigüedad: 18 años, 10 meses
Puntos: 11
Re: preg_replace

Te espero entonces ^_^
En realidad no creo que sea muy complicado, el tema es que tengo muy poca experiencia con eso de las expresiones regulares asique a mi me cuesta bastante.
Si sirve de algo para simplificar la cosa (porque el código que puse además de formar el cgi también crea un link para que abra un popup y demaces...) lo único que habría que hacer (creo) es primero dividir el texto entre [tex][/tex] en líneas. Y poder agarrar cada línea por separado.
Después es todo HTML...
El truco está en poder separar las líneas que hay entre [tex] y [/tex].

Saludos !
enri.
  #4 (permalink)  
Antiguo 21/04/2007, 15:57
 
Fecha de Ingreso: mayo-2005
Mensajes: 284
Antigüedad: 18 años, 10 meses
Puntos: 11
Re: preg_replace

Problema resuelto...
hay que agregarle el modificador "s" para que tome los saltos de línea.
Después es solo separarlas y armar bien el código HTML...

Saludos !
J
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:25.