PHPの「shm_get」関数には整数のセマフォキーが必要ですが、これは基盤となるOSの制限であると私は認識しています。
「sha1」関数を使用してユーザー入力をハッシュし、ハッシュを使用して結果のファイルとバックグラウンドプロセスの数を一意に識別しています。
shm_getに英数字キーを受け入れるように説得したり、sha1ハッシュを受け入れ可能な整数に変換したりする方法はありますか?
を使用して、16 進数を 10 進数に変換できます。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);