Foros del Web » Programando para Internet » PHP »

str_replace

Estas en el tema de str_replace en el foro de PHP en Foros del Web. Hola a todos: Alguien me podría decir si esto es posible: En un campo de texto en una base de datos quiero pasar variables dentro ...
  #1 (permalink)  
Antiguo 09/04/2008, 08:37
 
Fecha de Ingreso: marzo-2004
Mensajes: 283
Antigüedad: 20 años, 2 meses
Puntos: 2
str_replace

Hola a todos:
Alguien me podría decir si esto es posible: En un campo de texto en una base de datos quiero pasar variables dentro de ese campo. Sería algo como:

Código:
Esta es la galería de fotos que hicimos en Madrid:
 [g=27] 
Hasta luego.
de manera que luego un script en php interprete este resultado, y al ver la etiqueta [g] la remplace por una serie de fotos. Mi problema es que con la funcion str_replace puedo cambiar una etiqueta por lo que quiera, pero en este caso necesito sacar el valor de la etiqueta (en el ejemplo anterior era "27") para hacer la consulta que muestre las fotos. Entonces tengo dos problemas:

-como saco el valor "27"?
-como hago para hacer el str_replace, pues para remplazar [b] [i] y cosas asi no hay problema, pero aqui la etiqueta cambia constantemente (puede ser [g=27] como [g=2] o [g=99])?

Muchas gracias y a ver si podeis ayudarme.
  #2 (permalink)  
Antiguo 09/04/2008, 08:46
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 8 meses
Puntos: 55
Re: str_replace

el str_replace va a ser mucho ms util para valores fijos como

str_replace('','<strong>',$texto);
str_replace('
','</strong>',$texto);

ahora para valores variables como [g=27]

vas a tener q utilizar
preg_match_all('/\[g=([0-9]+)\]/',$texto,$regs);

luego en $regs vas a tener todos los numeros de las g's

y comienzas a reeemplazar con preg_replace, o str_replace

saludos
__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 09/04/2008, 08:59
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 5 meses
Puntos: 11
Re: str_replace

Excelente opción!!

Última edición por usermax; 10/04/2008 a las 10:01
  #4 (permalink)  
Antiguo 10/04/2008, 09:10
 
Fecha de Ingreso: marzo-2004
Mensajes: 283
Antigüedad: 20 años, 2 meses
Puntos: 2
Re: str_replace

Muchas gracias a los dos, al final me decidi por la opción de emiliodeg, kedandome algo tal que asi:
Código:
preg_match_all('/\[g=([0-9]+)\]/',$Row[texto],$g);
$xid = $g[1][0];
if ($xid)
{
	$pag_fotos = mysql_query ("SELECT img_id FROM imagenes WHERE (xid='$xid' && estado='1') ORDER BY id ASC");
	$m=0;
	$blog_galeria[$j] = array();
	While ($Row = mysql_fetch_array ($pag_fotos)) 
	{			
		$blog_galeria[$j][$m] = $Row[img_id];
		$m++;
	}
}
No termino de entender muy bien como funciona (no soy muy bueno en php) y me lio con todos esos signos que hay (para que valen?? l('/\[g=([0-9]+)\]/') y de nuevo dos dudas:

- ¿como se podría modificar esos signos para que reconociera algo mas que numeros? me gustaria que $g pudiera valer "23.viajes.5" algo asi, de manera que luego con explode pudiera sacar 3 variables (23, viajes y 5). Tal y como esta ahora el preg_match_all solo reconoce numeros y no tengo ni idea de como ponerlo para que acepte numeros, letras y puntos.

- ¿Como se podría eliminar la etiqueta [g=23.viajes.5] del texto? Tal y como hago ahora con preg_match_all detecto si existe $g, y si es asi muestro las imagenes, pero luego no se como hacer para eliminar la etiqueta anterior, para que no se muestre junto con el texto y las letras.

Un saludo y de nuevo gracias
  #5 (permalink)  
Antiguo 10/04/2008, 09:57
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: str_replace

se llaman expresiones regulares ((deberia haber ujn tema de ello en el foro)) pregunta a Google... para el siguiente patron: 21.ene.9 seria algo asi ... /[0-9]+\.[a-z]+\.[0-9]+/ ... vale?

investiga bien sobre regex, es tan util ke vale la pena...

Última edición por pateketrueke; 10/04/2008 a las 10:00 Razón: usaaa preg_replace()
  #6 (permalink)  
Antiguo 13/04/2008, 12:44
 
Fecha de Ingreso: marzo-2004
Mensajes: 283
Antigüedad: 20 años, 2 meses
Puntos: 2
Re: str_replace

Gracias pateketrueke, pero k puedo utilizar para eliminar de un texto la etiqueta. Es decir como elimino de un texto lo siguiente

Esto es un texto de prueba bla bla bla [g=23.ced.2] Aqui me despido.

Como haria para eliminar en este caso "[g=23.ced.2]" sabiendo k los valores de g pueden cambiar y no ser siempre los mismos? Gracias
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 04:22.