У меня есть функция, которая кодирует числа в строку, как:
Функция:
public static function encode($number) {
$out = "";
$codes = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHJKMNPQRSTUVWXYZ";
while ($number > 53) {
$key = $number % 54;
$number = floor($number / 54) - 1;
$out = $codes{$key}.$out;
}
return $codes{$number}.$out;
}
Как сделать функцию реверса, которая будет конвертировать буквы обратно в цифры?
Вы можете рассматривать строку как массив и использовать позицию, так что это будет проще для кодирования:
$codes = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHJKMNPQRSTUVWXYZ";
return $codes[$number];
Вы можете захотеть некоторую проверку ошибок как:
return isset($codes[$number]) ? $codes[$number] : false;
Затем для декодирования найдите букву в этой позиции:
$codes = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHJKMNPQRSTUVWXYZ";
return strpos($codes, $letter);
strpos()
вернусь false
для вас, если не найден.
Его легко использовать
strpos
функция
public static function decode($letter) {
$letter = $letter[0];
$codes = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHJKMNPQRSTUVWXYZ";
$pos = strpos($codes,$letter);
return $pos;
}