Php 将唯一字符串与较短的唯一字符串匹配

Php 将唯一字符串与较短的唯一字符串匹配,php,Php,假设我必须管理1000000个12位数格式的电话号码。当然,它们是不同的。现在,我想给每个数字分配一个较短的字符串(7个字母数字-区分大小写的字符),该字符串也必须区分。使用Php的最佳解决方案是什么?您可以使用Php的base_convert()函数将整数转换为字符串 从整数到a-z0-9基36字符串:$shortString=base\u convert($phoneNumber,10,36) 从基36字符串到整数:$phoneNumber=base\u convert($shortStri

假设我必须管理1000000个12位数格式的电话号码。当然,它们是不同的。现在,我想给每个数字分配一个较短的字符串(7个字母数字-区分大小写的字符),该字符串也必须区分。使用Php的最佳解决方案是什么?

您可以使用Php的base_convert()函数将整数转换为字符串

从整数到a-z0-9基36字符串:
$shortString=base\u convert($phoneNumber,10,36)

从基36字符串到整数:
$phoneNumber=base\u convert($shortString,36,10)


如果这不够短,并且您希望使用a-zA-Z0-9字符的完整范围,则需要使用自定义函数转换为base 62。在。

上有一些很棒的,所以基本上,你想“压缩”电话号码?是这样吗?是否希望能够在两种格式之间进行转换?或者你只是想要一个简短的(唯一的)“散列”它们?像是有效的东西吗?实际上我不需要重新转换回电话号码。提取可以存储在数据库中供以后使用的较短字符串后,uniqid()无法解决此问题。也许我们不能将输出字符串的长度限制为特定的值(这里是7)。而且,它不使用字符串(比如电话号码)作为唯一的输入。这看起来很棒。Base 62(0-9A-Za-z)生成非常短的字符串,如果需要,可以扩展到7个字符。