Foros del Web » Programando para Internet » PHP »

str_replace un número determinado de veces

Estas en el tema de str_replace un número determinado de veces en el foro de PHP en Foros del Web. Quisiera aplicar la funcion str_replace de php un número concreto de veces, pero no tengo ni idea de como hacerlo. Tengo un texto en el ...
  #1 (permalink)  
Antiguo 14/04/2009, 13:23
 
Fecha de Ingreso: marzo-2004
Mensajes: 283
Antigüedad: 20 años, 1 mes
Puntos: 2
str_replace un número determinado de veces

Quisiera aplicar la funcion str_replace de php un número concreto de veces, pero no tengo ni idea de como hacerlo.
Tengo un texto en el que se intercalan varias etiquetas tal que asi:
Código:
Este es mi texto de prueba, unas imagenes: [galeria]
Tambien quiero enseñaros estas otras: [galeria]
Y para acabar estas fotos: [galeria]
lo que quiero es que estas etiquetas [galeria] sean sustituidas por el contenido de un array, quedando algo tal que así:
Código:
Este es mi texto de prueba, unas imagenes: codigo html
Tambien quiero enseñaros estas otras: otro codigo html
Y para acabar estas fotos: codigo html final
Pero al ser todas las etiquetas iguales (todas se llaman [galeria]) el str_replace no me permite primero sustituir la primera, luego ir a por la segunda, luego a por la tercera...
Intente algo así:
Código PHP:
$var_iniciales = array ("[galeria]","[galeria]","[galeria]");
$var_sustituidas = array ("codigo html","otro codigo html","codigo html final");
$nuevo_texto str_replace($var_iniciales$var_sustituidas$texto); 
Y me sustituye todas las [galeria] por el primer valor de $var_sustituidas (codigo html). Se os ocurre algo? Muchas gracias!
  #2 (permalink)  
Antiguo 14/04/2009, 13:24
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: str_replace un número determinado de veces



revisa el manual de PHP

http://php.net/str_replace

Edito: si, meti la pata....


u otra técnica, es hacer uso de preg_replace_callback() y con tu funcion de callback devolver lo justo y necesario...

Código PHP:
function foo($match)
{
  static 
$i 0;

  return 
' elemento: ' . (++$i) . '; ';
}

echo 
preg_replace_callback('/\[a\]/''foo''este [a] es bien [a] o no?? [a]'); 
lee el siguiente tema: http://www.forosdelweb.com/f18/aport...s-pcre-646110/


suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Última edición por pateketrueke; 14/04/2009 a las 13:31
  #3 (permalink)  
Antiguo 14/04/2009, 13:27
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: str_replace un número determinado de veces

En realidad ese parametro lo que te dice es cuantos reemplazos se ejecutaron.

preg_replace si cuenta con lo que necesitas:
http://www.php.net/manual/es/function.preg-replace.php
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 19:35.