PHP 的“shm_get”函数需要一个整数信号量键,我意识到这是对底层操作系统的限制。
我正在使用“sha1”函数来散列一些用户输入,并使用散列来唯一标识一些结果文件和后台进程。
有没有办法说服 shm_get 接受字母数字键或将 sha1 哈希转换为可接受的整数?
您可以使用以下方法将十六进制数转换为十进制数hexdec()
但是,如果您的哈希值很大,则不会返回整数。但是你需要一个整数。所以你可能想把它分开,只使用散列的一部分。
$hash = sha1('http://www.hashcat.net/');
$hash = substr($hash, 0, 15); // ok on 64bit systems
$number = (int) hexdec($hash); // cap to PHP_INT_MAX anyway
var_dump($hash, $number);