Буквенно-цифровой (sha1) семафор в PHP? - PullRequest
3 голосов
/ 21 июня 2011

PHP-функции "shm_get" требуется целочисленный ключ семафора, который, как я понимаю, является ограничением базовой ОС.

Я использую функцию "sha1" для хеширования некоторых пользовательских данных и использую хеш дляоднозначно идентифицируйте количество результирующих файлов и фоновых процессов.

Есть ли способ убедить shm_get принять буквенно-цифровой ключ или преобразовать хэш sha1 в приемлемое целое число?

1 Ответ

2 голосов
/ 21 июня 2011

Вы можете преобразовать шестнадцатеричное число в десятичное число, используя 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);
...