Я создаю сервис сокращения ссылок и использую кодирование / декодирование base64 увеличенного поля идентификатора для создания моих URL-адресов. URL с идентификатором «6» будет: http://mysite.com/Ng==
Мне также нужно разрешить пользователям создавать собственные URL-адреса, например http://mysite.com/music
Вот мой (возможно, ошибочный) подход до сих пор. Буду признателен за помощь в исправлении.
Когда кто-то создает новую ссылку:
- Я получаю самый большой идентификатор ссылки из базы данных (он не увеличивается автоматически)
- Увеличение ID на 1
- Создание короткого URL-кода (http://website.com/[short имя URL]) с помощью base64_encoding для этого идентификатора
- Вставить в таблицу ссылок: id, short_url_code, destination_url
Когда кто-то создает новую ссылку и передает пользовательский короткий URL:
- Мой план был base64_decode их пользовательской строки и использовать его в качестве идентификатора ссылки, но я не понял, что вы не можете просто base64_decode любой буквенно-цифровой строки и превратить ее в число.
Есть ли лучший метод кодирования, который позволит мне превращать любое число в короткую строку, а любую строку в число, чтобы я всегда мог искать короткие URL-адреса (пользовательские или автоматически созданные), превращая имя в число и выполняя запросы для ссылки с идентификатором, равным этому номеру?