Foros del Web » Programando para Internet » PHP »

Problema con str_replace

Estas en el tema de Problema con str_replace en el foro de PHP en Foros del Web. Saludos, estoy tratando de convertir los bbcode en html por medio de php, la mayoria son faciles de convertir pero llegue a un proble con ...
  #1 (permalink)  
Antiguo 21/06/2011, 14:28
 
Fecha de Ingreso: julio-2010
Mensajes: 158
Antigüedad: 11 años, 11 meses
Puntos: 3
Problema con str_replace

Saludos, estoy tratando de convertir los bbcode en html por medio de php, la mayoria son faciles de convertir pero llegue a un proble con la etiqueta [img]

Si yo tengo esto:
[img]mi imagen [/img]

Utilizo esto
$post[cadena] = str_replace('[img]','<img src="',$post[cadena]);
$post[cadena] = str_replace('[/img]','" />',$post[cadena]);

E imprime esto:
<img src="mi imagen">

Hasta aqui todo bien, mi proble es cuando la etiqueta es de esta forma:
[img width=100 height=100]mi imagen[/img]

Obviamente no funciona, ¿Cómo le hago para decirle que separe y guarde width=100 height=100?????
  #2 (permalink)  
Antiguo 21/06/2011, 14:33
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 14 años, 2 meses
Puntos: 2534
Respuesta: Problema con str_replace

Es complicado si no sabes manejar expresiones regulares.

Afortunadamente existen implementaciones ya escritas para que no tengas que hacerlo desde cero todo, inclusive hay aportes existente ya en el foro de PHP.

Te invito a buscar adecuadamente, gracias.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 21/06/2011, 14:53
 
Fecha de Ingreso: julio-2010
Mensajes: 158
Antigüedad: 11 años, 11 meses
Puntos: 3
Respuesta: Problema con str_replace

Justamente ando leyendo un articulo tuyo sobre expreciones regulares y patrones, aun no doy como deberia ser

$post[cadena] = str_replace('[img(^]$)','<img src="',$post[cadena]);

Creo que asi le estoy diciendo que capture valores apartir de [img hasta ], pero no funciona, un poco de ayuda agradeceria mucho, y aqradesco pero no quiero cosas prefabricadas me gusta hacerlas por mi cuenta.
  #4 (permalink)  
Antiguo 21/06/2011, 14:57
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 14 años, 2 meses
Puntos: 2534
Respuesta: Problema con str_replace

La idea de leer cosas prefabricadas es para que te des una idea, si lo sigues haciendo así a lo ciego no vas a llegar lejos.

http://bbcode.org

Y vamos, el aporte que mencionas te puede ayudar, pero si no tienes idea de lo que se tratan las expresiones regulares entonces no sirve de nada.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 21/06/2011, 14:59
Avatar de Aaronus23  
Fecha de Ingreso: diciembre-2010
Ubicación: https://home
Mensajes: 81
Antigüedad: 11 años, 6 meses
Puntos: 4
Respuesta: Problema con str_replace

str_replace remplaza axactametne lo que buscas.... para remplazar con expresiones regulares necesitas usar preg_replace
  #6 (permalink)  
Antiguo 21/06/2011, 20:44
 
Fecha de Ingreso: julio-2010
Mensajes: 158
Antigüedad: 11 años, 11 meses
Puntos: 3
Respuesta: Problema con str_replace

Gracias Aaronus23 no sabia que esta usando mal el str_replace, pero aun no lo soluciono

Esto:
[img]mi imagen [/img]

Lo hago con esto:
$post[cadena] = ereg_replace ('\[img\]','<img src="',$post[cadena]);
$post[cadena] = str_replace('[/img]','" />',$post[cadena]);

E imprime esto:
<img src="mi imagen">

Pero no logro hacer esto
[img width=100 height=100]mi imagen[/img]

Segun entiendo () me permite capturas los valores dentro.
$post[cadena] = ereg_replace ('(^\[img\]$)','<img src="',$post[cadena]); //No deberia guardar los datos que estan despues de [img y antes de ]?????
$post[cadena] = str_replace('[/img]','" />',$post[cadena]);

Espero puedan ayudarme.
  #7 (permalink)  
Antiguo 21/06/2011, 21:30
Avatar de rikardoz  
Fecha de Ingreso: abril-2011
Ubicación: En mi casa
Mensajes: 165
Antigüedad: 11 años, 2 meses
Puntos: 46
Respuesta: Problema con str_replace

http://www.php.net/manual/es/function.preg-replace.php
__________________
Agregadecer no cuesta nada O SI?
  #8 (permalink)  
Antiguo 22/06/2011, 12:03
 
Fecha de Ingreso: julio-2010
Mensajes: 158
Antigüedad: 11 años, 11 meses
Puntos: 3
Respuesta: Problema con str_replace

Parece que ya estoy un poco cerca si tengo esto:

[img width=100 height=100]mi imagen

Con esto:
$post[cadena] = ereg_replace ('(\[img)?(.+)(\])','<img \\1 src="',$post[cadena]);

Lo tranforma como quiero en:
<img width=100 height=100 src="mi imagen

El problem es que no lo hace todo bien, si tengo esto:

[img width=100 height=100]mi imagen[/img]

Hace esto:
<img width=290 height=400]mi imagen[/img src="

Esta capturando todo lo hay hasta el corchete de [/img] cuando solo deberia capturas hasta el corchete de [img width=100 height=100], espero puedan ayudarme, desde ya gracias.

Última edición por cyber_dark; 22/06/2011 a las 12:10
  #9 (permalink)  
Antiguo 22/06/2011, 12:59
Avatar de rikardoz  
Fecha de Ingreso: abril-2011
Ubicación: En mi casa
Mensajes: 165
Antigüedad: 11 años, 2 meses
Puntos: 46
Respuesta: Problema con str_replace

porque no usas esta funcion :
http://www.php.net/manual/es/function.bbcode-create.php ?
__________________
Agregadecer no cuesta nada O SI?
  #10 (permalink)  
Antiguo 22/06/2011, 13:23
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 12 años, 4 meses
Puntos: 55
Respuesta: Problema con str_replace

Cita:
Iniciado por rikardoz Ver Mensaje
no sabia q exitia esa funcion.

Saludos.
  #11 (permalink)  
Antiguo 22/06/2011, 14:29
 
Fecha de Ingreso: julio-2010
Mensajes: 158
Antigüedad: 11 años, 11 meses
Puntos: 3
Respuesta: Problema con str_replace

Gracias amigo pero los arrays no se me dan mucho, y parece que esto tampoco porque ya me tomó mucho tiempo agradeceria si uno me da una solución a mi problema.
  #12 (permalink)  
Antiguo 22/06/2011, 14:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 14 años, 2 meses
Puntos: 2534
Respuesta: Problema con str_replace

Cita:
Iniciado por cyber_dark Ver Mensaje
Gracias amigo pero los arrays no se me dan mucho, y parece que esto tampoco porque ya me tomó mucho tiempo agradeceria si uno me da una solución a mi problema.
Yo te sugerí que emplearas algo ya escrito, o en su defecto que lo estudies.

Pero si no consideras como solución aquello entonces atente a perder tiempo en lo que dominas las expresiones regulares, arrays, etc.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: Ninguno
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 03:00.