Cita:
Iniciado por Jilti
Saludos amigos.
Tengo un problema con substr_replace y os lo pregunto por si podéis echarme una mano.
Tengo un string en el que debo colocar cada ciertos caracteres otro carácter. Me explico, en el string "abcdefghijklmn" tengo que colocar a partir del segundo carácter el símbolo "@".... eso lo tengo hecho.
El problema me viene cuando tengo que colocar varios "@", por ejemplo en la posición 2, 6 y 8. No se si me he explicado bien.
¿Cómo se haría? y si se puede hacer de otra manera.... ¿cual?
Muchas gracias de antemano por la ayuda.
![Aplauso](http://static.forosdelweb.com/fdwtheme/images/smilies/aplausos.gif)
La función substr_replace lo que hace es remplazar el una parte del string por el string que le pasas. Sin embargo si le pones a ultimo parametro 0, no sustituye nada, y simplemente lo inserta.
Eso básicamente ya veo que lo comprendes. La función si vas al manual de php te va a decir lo mismo, y no te va a resolver tu problema, ya que no tiene ningún otra forma de usarla como tú quieres. Aquí a tu pregunta, lo debes resolver a partir de tu propia lógica.
Lo que deberas hacer es llamar varias veces a la misma función, pasandole como parametro $string, y teniendo en cuenta además los caracteres que vas insertando.
La primera llamada lo queremos poner despues de 2, y no hacemos nada extraordinario. Pero en la segunda linea, le pasamos el string actualizado de la anterior y lo queremos poner en 6, pero como anteriormente hemos insertado entonces la posición 6 no es la misma que la de antes, por lo que debemos sumarle 1. Y en la tercera llamada le sumamos 2 ($a++) a 8, porque ya tendríamos 2 caracteres insertados anteriormente.
Un saludo.