Foros del Web » Programando para Internet » PHP »

Pergunta sobre cadenas

Estas en el tema de Pergunta sobre cadenas en el foro de PHP en Foros del Web. Saaamigos, estoy haciendo un foro y estoy por la parte de hacer los emoticones, lo de bold y eso. Tengo una duda: El usuario manda ...
  #1 (permalink)  
Antiguo 18/11/2003, 01:19
 
Fecha de Ingreso: mayo-2003
Ubicación: Buenos Aires
Mensajes: 97
Antigüedad: 20 años, 10 meses
Puntos: 0
Pergunta sobre cadenas

Saaamigos, estoy haciendo un foro y estoy por la parte de hacer los emoticones, lo de bold y eso.

Tengo una duda:

El usuario manda una cadena de por ejemplo 500 palabras de las cuales una parte es asi [ size=17 ]blabla[ /size ] necesito generar el html con puntaje 17 de letra , pero como hago para reemplazar en la cadena que manda el usuario el 17 y el size para que me quede <span style='font-size:17pt;> pq no se como hacer para reemplazar separando el puntaje (el 17 en este caso).

Para las demas tags uso el str_replace pero aca no se que numero voy a tener que poner en el reemplazo pq depende del que este en la base de datos (en este caso el 17).


Alguna sugerencia de como encarar esto?
  #2 (permalink)  
Antiguo 18/11/2003, 02:13
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 8 meses
Puntos: 2
¿Y por qué quieres reemplarzar el número (en este caso el 17) si es lo que te vale?, reemplaza el resto y obtendrás la cadena que deseas.
En el ejemplo que pusiste:
1. reemplazas "[ zize=" por "<span style='font-size:"
2. reemplazas " ]" por ";>"
Con esto obtienes el resultado que quieres y el número ni lo has visto.
Un saludo.
  #3 (permalink)  
Antiguo 18/11/2003, 02:36
 
Fecha de Ingreso: mayo-2003
Ubicación: Buenos Aires
Mensajes: 97
Antigüedad: 20 años, 10 meses
Puntos: 0
gracias por contestar vice pero el problema es que si reemplazo el ] cuando encuentre otras tags va a hacer lo mismo pq las tags que uso son todas con [ algo ]. como la de [ b ] [ i ] etc etc.
  #4 (permalink)  
Antiguo 18/11/2003, 09:07
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Seria cuestion de usar expresiones regulares. Seria dividir la expresion en grupos, y en la expresion a poner usar las referencias a los grupos (con \\1, \\2, ...) para poner los trozos.

Siento no ser mas concreto, pero las expresiones regulares no son mi fuerte. Revisa www.php.net/preg_replace y mira como usa los parentesis.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 18/11/2003, 12:22
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 21 años, 8 meses
Puntos: 8
Si no te quieres involucrar en las ER, podrias probar estra clase de PEAR:
http://pear.php.net/package/HTML_BBCodeParser
  #6 (permalink)  
Antiguo 19/11/2003, 15:33
 
Fecha de Ingreso: septiembre-2001
Ubicación: Monterrey
Mensajes: 663
Antigüedad: 22 años, 6 meses
Puntos: 6
Puedes hacer algo como lo siguente
Código PHP:
$pattern '/(\\[)(size)=(\\d{1,2})(\\])(.*)\\1\\/\\2\\4/';
    
$replace "<span style='font-size:$3pt'>$5</span>";
    
$texto '[ size=7 ]xxxx[ /size ]';
    echo 
preg_replace$pattern$replace$texto ); 
Ojo que separe intencionalmente los corchetes para que no fueran interpretados por el interprete de codigo vB del foro.
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 22:01.