假设我有一个这样的字符串:
whateverthisis123 #_-
我想将此字符串转换为数字间隔内的数字,例如在1-1000之内。
上述字符串可以转换为
387
这有一些规则:
PHP中是否有内置函数?如果没有,任何聪明的想法如何创建这样的东西?
如果首次转换为MD5,可能会更容易? http://www.php.net/manual/en/function.md5.php
答案 0 :(得分:2)
您实际上是在描述哈希函数。 MD5看起来像是要走的路。如果您需要将其转换为数字intval()
。要将其保持在1-1000之间,请使用$number % 1000
。
注意:如果这与安全/密码有关,那就不错了。
答案 1 :(得分:1)
从我的评论中扩展而来,这是一个完整的代码示例(比哈希更有趣的方式..)
<?php
int numberout(string $input)
{
$hash=md5($input);
$calculate=hexdec(substr($hash,0,3)); //take out 3 digits
$maxhex=4095; //3 digit hex ,65535 for 4 digit hex and so on...
$out = ($calculate*1000)/$maxhex;
return $out;
}
?>
很抱歉,如果这是程序错误,我习惯了c#,我还没有测试过。所以,如果有任何错误,我希望有人编辑它