从 URL Shortener 的自定义位置值表示法生成唯一 ID

Posted

技术标签:

【中文标题】从 URL Shortener 的自定义位置值表示法生成唯一 ID【英文标题】:Generating unique ids from a custom place-value notation for a URL Shortener 【发布时间】:2011-02-08 20:51:35 【问题描述】:

我想制作一个具有以下 URL 格式的 URL 缩短器: http://myurlshortner.com/id

id 是唯一的,由以下位置值符号序列/系统/序列生成:

0
1
2
.
.
.
9
a
b
c
.
.
.
z

例如:http://myurlshortner.com/1b6z

为了将条目保存到数据库,我想让 id 主键(或唯一字段)随着每个新条目递增并遵循上述顺序。我该怎么做?

对于数据存储,我将使用 Amazon SimpleDB。所以不会有任何存储过程或其他 DBMS 功能,例如我可以使用的 mysql

这与 http://tinyurl.com 和 http://bit.ly 等 URL 缩短器的工作方式完全相同(几乎)。

...我正在用 php 编码。我希望你能理解我的问题。

【问题讨论】:

【参考方案1】:

您只需将普通的以 10 为基数的 id 转换为以 36 为基数的 id 即可实现您想要的。

Base 36 使用数字 0-9,然后是字母 A-Z。

您可以在将其存储到数据库之前进行转换并将转换后的数字用作 id,或者仅使用正常的以 10 为底的自动增量并在您的代码中进行转换。

见:http://php.net/manual/en/function.base-convert.php

php > echo base_convert(123456789, 10, 36);
21i3v9

【讨论】:

以上是关于从 URL Shortener 的自定义位置值表示法生成唯一 ID的主要内容,如果未能解决你的问题,请参考以下文章

如何从表格视图的自定义单元格内的 TextField 获取值(标签)以发布到 te URL

markdown URL Shortener

PHP PHP URL Shortener

SharePoint 2010 Url Shortener --SharePoint 2010 短URL生成器

HTML/PHP URL Shortener 在 URL 之后 / 在 URL 中通过 ID 重定向

Google URL Shortener API 总是返回与 pagetoken 相同的页面