скрыть полный номер и отобразить последние 4, но снять маску с номера при отправке формы


Мне нужно отобразить число (число извлекается из базы данных) в поле ввода формы таким образом, чтобы были видны только последние 4 цифры, остальные могут быть замаскированы как * или X или как угодно применимо.

Я знаю, что последние 4 можно получить следующим образом:

$number=substr($number,-4,4);

Но когда я нажимаю кнопку "Отправить", форма проверяет поле ввода и проверяет, является ли номер допустимым номером определенного формата. Поэтому, когда я нажимаю на кнопку "Отправить", я все равно должен иметь возможность снимите маску с замаскированных чисел или сделайте что-то подобное, что помогло бы мне проверить все число.

<input type="text" name="no" value="<?php if(!empty($number)){ echo $number;} ?>">

Итак, я не уверен, как поступить с этим?

Например. Если у меня есть номер 786661234. Его следует отображать в виде XXXXX1234. Когда я нажимаю и отправляю форму, она должна быть расшифрована и обновлена в базе данных как 786661234

Author: Micheal, 2012-03-08

2 answers

Введите свой номер в переменную $number и получите результат:

<?php

$number =  "1122334455667788";
$masked =  str_pad(substr($number, -4), strlen($number), '*', STR_PAD_LEFT);
print $masked;

?>
 3
Author: Waqas Ikram, 2016-12-06 18:22:04

Еще один вариант маскировки чисел

<?php 
echo str_repeat("x", (strlen($number) - 4)).substr($number,-4,4);

?>

 4
Author: Prasanth Mathew, 2015-06-06 09:51:36