1.- hacelo por líneas. se te va a hacer MUUUUUCHO más fácil.
2.- ¿cómo separás la contraseña del comienzo del nuevo usuario?
yo lo que haría es:
primero separar de alguna forma los diferentes pares usuario:contraseña (preferentemente con explode).
luego buscár qué pedazo contiene el usuario que quiero.....
a ese pedazo le hago otro explode() con ":" como separador
cambio la contraseña
y luego hago un implode() con los datos que tengo.
sería algo como:
Código PHP:
<?php
$archivo = file_get_contents(archivo);
$pares = explode(separador, $archivo);
foreach ($pares as $num_par => $par) {
$datos = explode(":", $par);
if ($datos[0] == usuario) {
$datos[1] = nueva_contraseña;
$pares[$num_par] = implode(":", $datos);
}
}
$arch = fopen(archivo, 'w+');
fwrite($arch, $pares);
fclose($arch);
?>
si tu archivo estuviera separado por líneas, te ahorrás el primer explode()
Saludos.