PHP - Reemplazar facilmente

 
Vista:

Reemplazar facilmente

Publicado por Andrés Osorio (1 intervención) el 24/07/2014 03:18:46
Hola a todos, quisiera saber como puedo hacer esto:

Quiero reemplazar de una subcadena especifica por otra es decir que yo quiero

tomar de la cadena X, la palabra Carlos (solo el primero)
'Andrés;Carlos;Luis;Carlos"

y luego reemplazarla por German.

Previamente ya habia ajustado que german debe reemplazarse por el segundo de la cadena...

Código PHP:
1
2
3
4
5
6
7
8
9
10
$reemplazar='German'
$numero='2'
cadenax='Andrés;Carlos;Luis;Carlos'
$extraer = explode (";", $cadena);
$total= count($extraer);
$extraer[$numero]=$reemplazar;
for ($i = 0; $i <= $total; $i++) {
$llenar.=$extraer[$i];
$llenar.=';'
}

Pese que existe una funcion mucho mas simple str_replace ,me reemplaza son todos los carlos y yo solo quiero uno, el de la cadena 2
Adicional a esto quiero volver a unir todas las subcadenas en una, que es la variable $llenar pero no se si alla una forma mas simple


Gracias por su atencion
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Reemplazar la primera aparición de una cadena

Publicado por xve (6935 intervenciones) el 24/07/2014 15:54:26
Hola Andrés, creo que hay maneras mas simples... por ejemplo, aquí tienes como reemplazar la primer aparición de una cadena utilizando una expresión regular con preg_replace()

1
2
3
4
5
6
<?php
$reemplazar='German';
$cadena='Andrés;Carlos;Luis;Carlos';
 
echo preg_replace("/Carlos/",$reemplazar,$cadena,1);
?>

Esto te devolverá:
1
Andrés;German;Luis;Carlos

Espero que te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Vainas
Val: 34
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Reemplazar facilmente

Publicado por Vainas (262 intervenciones) el 24/07/2014 17:22:57
Buenas:

pues yo en vez del for usaria implode()

1
2
3
4
5
6
$reemplazar='German';
$numero='2';
$cadenax='Andrés;Carlos;Luis;Carlos';
$extraer = explode (";", $cadena);
$extraer[$numero] = $reemplazar;
$cadenax = implode(";",$extraer);

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar