Cita: 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.
Pues yo creo que primero deberías "cortar" la cadena son substr() para que obtengas un array de todos esos fragmentos, al final usas join() para unir todo con el separador que quieras.
Es decir, si el incrementador es constante entonces es simple con un bucle:
Código PHP:
Ver original$inc = 2;
$text = 'abcdefghijklmnop';
$fragments = [];
for ($i = 0; $i < $length; $i += $inc) {
$fragments []= substr($text, $i, $inc); }
echo join('@', $fragments);
El problema de hacerlo con substr_replace() es que tras cada cambio la cadena muta, entonces el índice ya no sería 2 sino 3, y así progresivamente por lo tanto no es conveniente asumir que el índice siempre será el mismo.
Amiancht, bueno, ¿y entonces tenemos que hacer las cosas por alguien más siempre?
¿Tu qué entendiste al leer esto?
Cita: ¿Cómo se haría? y si se puede hacer de otra manera.... ¿cual?
Básicamente quiere que le digamos cómo hacer las cosas: exactamente.
Eso no es pedir ayuda, es buscar que alguien haga su trabajo.