Foros del Web » Programando para Internet » PHP »

Bucle de reemplazos con substr_replace

Estas en el tema de Bucle de reemplazos con substr_replace en el foro de PHP en Foros del Web. Intento reemplazar en una cadena de texto una serie de expresiones, en este caso "sin embargo", por unos sinónimos utilizando substr_replace ; como no quiero ...
  #1 (permalink)  
Antiguo 31/03/2012, 17:19
 
Fecha de Ingreso: abril-2010
Mensajes: 12
Antigüedad: 14 años
Puntos: 0
Bucle de reemplazos con substr_replace

Intento reemplazar en una cadena de texto una serie de expresiones, en este caso "sin embargo", por unos sinónimos utilizando substr_replace; como no quiero que se repita el mismo sinónimo en la cadena, no uso str_replace. Conozco la posición, la longitud de la expresión y de la cadena, incluso el número de apariciones en el texto.
Pero no hay manera, lo he intentado con este bucle:
Código:
	for ($num=0; $num<$apariciones_conector; $num++){
	$rand_sinonimo = mt_rand(1, count($array_conectores)-1);
	$reemplazo=$array_conectores[$rand_sinonimo];//REEMPLAZO ALEATORIO
	$texto2=$texto;

	$longitudconector=strlen($conector_buscado);

	$textofinal[$num]= substr_replace ($texto2, $reemplazo,$array_posiciones[$num],$longitudconector);

		}
La cadena de texto:
Código:
$texto='te lo digo sin embargo yo estoy aquí sin embargo yo te lo digo veces sin embargo mas je je je';
Y lo más que obtengo es un array donde se reemplaza una vez solamente en una posicion dada en cada elemento del array.

Cita:

Array ( [0] => te lo digo por otro lado yo estoy aquí sin embargo yo te lo digo veces sin embargo mas je je je [1] => te lo digo sin embargo yo estoy aquí además yo te lo digo veces sin embargo mas je je je [2] => te lo digo sin embargo yo estoy aquí sin embargo yo te lo digo veces asimismo mas je je je )
Mi objetivo es conseguir una única cadena con todos los reemplazos, sin que tenga por qué que repetirse el mismo sinónimo.
Estoy estancado, os agradecería muchísimo un poco de ayuda.

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