我正在创建一个链接缩短服务,并且我正在使用递增 ID 字段的 base64 编码/解码来创建我的网址。ID 为“6”的 url 将是: http: //mysite.com/Ng==
我还需要允许用户创建自定义 url 名称,例如http://mysite.com/music
到目前为止,这是我的(可能是错误的)方法。帮助修复它将不胜感激。
当有人创建新链接时:
- 我从数据库中获得了最大的链接 ID(它不是自动递增的)
- 将 ID 加 1
- 通过 base64_encoding 该 ID生成一个短 URL 代码 ( http://website.com/[short url name])
- 插入链接表:id、short_url_code、destination_url
当有人创建新链接并传递自定义短 URL 时:
- 我的计划是 base64_decode 他们的自定义字符串并将其用作链接 ID,但我没有意识到您不能只对任何字母数字字符串进行 base64_decode 并将其转换为数字。
是否有更好的编码方法可以让我将任何数字转换为短字符串,并将任何字符串转换为数字,因此我始终可以通过将名称转换为数字并查询链接来查找短 URL(无论是自定义的还是自动生成的) ID 等于那个数字?