使用PHP将随机文本转换为数字

时间:2013-07-12 01:48:49

标签: php string random converter

我需要将随机文本转换为数字。但是ramdom文本总是被转换为相同的数字。例如:

xxxx -> 10
testing -> 396
stackoverflow -> 72

我无法使用字符数来转换string因为如果我有2个字符串具有相同数字characters他们需要具有不同的数字(至少在最多时间)。

我不需要在一个范围内有这个数字。没有!它可以是任何数字,因为在给定某个字符串的情况下它总是相同的。

3 个答案:

答案 0 :(得分:4)

您可以尝试使用哈希(md5sha1等):

$number = hexdec( md5("hello world") );
$number = hexdec( sha1("hello world") );

相同字符串的哈希值将转换为相同的数字。

答案 1 :(得分:2)

怎么样;

$number = crc32($string);

应该便宜,给出整数输出,并为您的用例产生合理的随机性。

答案 2 :(得分:0)

已展示的其他方法可能会发生碰撞。以下不应该。

$num = "";
for($i = 0; $i < strlen($str); $i++)
    $num .= str_pad(ord($str[$i]), 3 "0", STR_PAD_LEFT);
return $num;