Hola amigos tengo un problema, debo enmascarar con xxx todos los rut que aparezcan en una cadena, pero me encotre con un pequeño problema, el código que uso solo enmascara el primer rut que encuentre en la cadena, los demás que puedan estar después de ese rut ya no los enmascara, favor de ayudarme :(
el código es este:
Código PHP:
$cadena = "Prueba para RUT 16.546.044-0 numero 124 con otro RUT 16.556.044-k, tambien el 16558044-0 o el RUT 16,586,044-0 y el RUT 16,556,044-5";
$patron= "/\d{0,3}.{0,1}\d{0,3}.{0,1}\d{1,3}-[0-9kK]?/";
$resultado=preg_match($patron, $cadena, $tmp)==true?str_replace("$tmp[0]","xx.xxx.xxx-x",$cadena):$cadena;
echo $resultado;
Si se fijan algunos rut están con puntos, otros con coma y otros solo con dígito verificador
y el resultado que me arroja es este:
Prueba para RUT xx.xxx.xxx-x numero 124 con otro RUT 16.556.044-k, tambien el 16556044-0 o el RUT 16,556,044-0 y el RUT 16,556,044-5