如何在php中将String转换为唯一的INTEGER

jsp*_*shu 5 php

如何将字符串(即电子邮件地址)转换为唯一的整数,以将它们用作ID.

Pre*_*gha 7

试试binhex函数

从上面的网站:

<?php
$str = "Hello world!";
echo bin2hex($str) . "<br />";
echo pack("H*",bin2hex($str)) . "<br />";
?>
Run Code Online (Sandbox Code Playgroud)

产出

48656c6c6f20776f726c6421
Hello world!
Run Code Online (Sandbox Code Playgroud)


Nik*_*kiC 7

PHP整数可以存储的信息量是有限的.您可以存储在字符串中的信息量不是(至少如果字符串不是非常长的话.)

因此,您需要将任意长度的字符串压缩为非任意长度的整数.没有数据丢失,这是不可能的.

您可以使用散列算法,但散列算法可能始终存在冲突.特别是如果要将字符串散列为整数,则冲突概率非常高 - 整数只能存储非常少的数据.

因此,您应该坚持使用电子邮件或使用自动递增整数字段.

  • 好.我仍然认为你不会发现这样的功能:一个40个字符的字符串可以存储在40个字节中(如果它是ascii,unicode会占用*甚至更多*).另一方面,整数只有8个字节(仅在64位机器上).因此,您仍然需要在8个字节中存储40个字节... (2认同)