Bom.. eu fiz assim... acho que funcionou.. não sei se é a melhor maneira... function left($car,$num){ return substr($car,0,$num); } function right($car,$num){ return substr($car,-$num); } $numerocartao = 1234567891234567 $num_cartao_mask = left($numerocartao,6),str_repeat("*",6),right($numerocartao,4);