Преобразование длинной ссылки в короткую

Подскажите алгоритм преобразования длинных URL в короткие. Например на входе строка с длинным URL:

$str = 'https://www.google.com/search?q=goiogle&oq=goiogle&aqs=chrome..69i57j0l7.2031j0j7&sourceid=chrome&ie=UTF-8';

На выходе короткая:

http://surl.li/balo

Синтаксис желательно php или js или python

На примере нашёл онлайн сервис


Ответы (1 шт):

Автор решения: Виталий Бриль
  1. Проверяем роут на цель обращение
    • http://domain/ - генерация короткого url + пункт 2
    • http://domain/*/ - редирект на ссылку + пункт 3
  2. Получаем ссылку из формы
  3. Проверяем ссылку на существование в бд
    • Если существует - перенаправляем на оригинальную ссылку
    • Если не существует - (пункт 4)
  4. Проверяем token на совпадение в бд
    • Совпадение найдено - генерируем новое + пункт 3
    • Совпадений нет - записываем token и оригинальную ссылку + пункт 5
  5. Выводим во фронт

Спасибо за объяснение в комментариях @EvgeniyZ

Прошу учесть, что алгоритм полностью рабочий, но не оптимизирован

→ Ссылка