@rinaz22

Как обратно раскодировать id?

Всем привет. Нашел в интернете такой код, чтобы сократить id int и получить уникальный id string
function generate_code($number) {
  $out   = "";
  $codes = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHJKMNPQRSTUVWXYZ";

  while ($number > 53) {
      $key    = $number % 54;
      $number = floor($number / 54) - 1;
      $out    = $codes[$key].$out;
  }

  return $codes[$number].$out;
}
$code = generate_code(12345);

Вопрос: Как теперь зная короткий id string получить id int?
  • Вопрос задан
  • 119 просмотров
Пригласить эксперта
Ответы на вопрос 2
@402d
начинал с бейсика на УКНЦ в 1988
лень глубоко разбираться. На первый взгляд похоже на перевод целого в 54-ю систему счисления.
Для обратного перевода пока строка не кончилась обратанную часть умножить на 54. Прибавить номер символа в строке кодирования.

А смущает меня, что символы собираются наоборот младшие слева.
Ответ написан
Комментировать
@hurgadan
можно проще
const radix = 36,
    id = 123;

const base36_string = id.toString(radix);  // 3f
const id = parseInt(base36_string, radix);  // 123


https://developer.mozilla.org/ru/docs/Web/JavaScri...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы