En ese caso, se me ocurre que crees una función en la cual descompongas la cadena a partir de los delimitadores que en este caso vienen siendo los punto y coma, formando así un array el cual recorrerías con ayuda de un bucle y a la primera coincidencia que se encuentre, la reemplazas por la palabra que quieras, conviertes al array en cadena uniendo a las palabras con el delimitador y devuelves la cadena actualizada.
Código PHP:
Ver originalfunction reemplazar($cadena, $delimitador, $objetivo, $reemplazo){
$array = explode($delimitador, $cadena); for ($i = 0, $l = count($array); $i < $l; $i++) if ($array[$i] == $objetivo){
$array[$i] = $reemplazo;
break;
}
return implode($delimitador, $array); }
$string = 'Andrés;Carlos;Luis;Carlos';
$delimiter = ';';
$target = 'Carlos';
$replace = 'Germán';
echo reemplazar($string, $delimiter, $target, $replace); //Andrés;Germán;Luis;Carlos
Saludos