Ocultar parte de un texto con PHP (123***789)

Les comparto una pequeña función que hice hace mucho tiempo para ocultar (ofuscar) parte de un texto con php, es muy util cuando queremos mostrar un dato “critico” o “personal” de forma parcial a un usuario, tales como:

  • Numero de la tarjeta de crédito
  • Parte de la respuesta secreta o pregunta secreta para recuperar una contraseña
  • Parte del numero de identificación de una persona
  • Código de compra de una e-card
  • Y todo lo que se te pueda ocurrir  …

 

<?php
/**
 * Oculta parte de un string
 * @param  string  $str   Texto a ocultar
 * @param  integer $start Cuantos caracteres dejar sin ocultar al inicio
 * @param  integer $end   Cuantos caracteres dejar sin ocultar al final
 * @author Jodacame 
 * @return string
 */
function hiddenString($str, $start = 1, $end = 1)
{
    $len = strlen($str);
    return substr($str, 0, $start) . str_repeat('*', $len - ($start + $end)) . substr($str, $len - $end, $end);
}
?>

El uso es muy simple, les dejo un par de ejemplos:

<?php
echo hiddenString("123456789");
// Salida 1*******9
 
echo hiddenString("123456789",5);
// Salida 12345***9
 
echo hiddenString("123456789",5,0);
// Salida 12345****
 
echo hiddenString("123456789",0,5);
// Salida ****56789
?>

Como siempre, espero que les sea de mucha utilidad.

You may also like...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *