生成MySql数据库中不存在的尽可能小的字符串

时间:2013-06-29 09:30:37

标签: php string unique

我正在尝试创建一个PHP脚本,该脚本生成一个在MySQL数据库中不存在的小字符串。如果字符串已经在使用中,我希望它生成一个新数字。我将使用该脚本来缩短URL。

2 个答案:

答案 0 :(得分:0)

为什么不使用谷歌的缩短API? https://developers.google.com/url-shortener/

如果你想自己做,有一个非常酷的(对PHP初学者来说很简单)实现 - 教程here

答案 1 :(得分:0)

您可以在数据库中使用自动增量来为所有条目分配唯一ID。然后,您将获取此ID并将其转换为更高的基数(我假设使用php的base_convert)。例如,您可以使用base 62(最佳使用字母数字字符)。一些示例代码:

<?php
$id = getId(); // Depending on the database interface you're using (eg. PDO)
$short_suffix = base_convert($id, 10, 62); // From base 10 to base 62
$short_url = "http://yourwebsite.tld/$short_suffix"; 

这里的一个优点是你只需为每个条目存储一个id和一个url(而不是缩短的URL)。