前提・実現したいこと
PHPで$a(8桁から19桁の数字)と$b(2桁以下の数字)のパラメーターを使用して、12桁の英数字のランダムな文字列を生成したいです。
$a apiから取得しているユーザーごとに違う数値
$b 使った日数
になります。$bは99以下の数値と考えていただいて構いません。
使った日、使ったユーザーごとに違う英数字を生成したいです。
発生している問題・エラーメッセージ
srand((float)$a* 10000 + $b);
元々$aが8桁以下の数値だったのでシードをこのように設定していました。
しかし19桁の数値となってしまったため、
$a =9999999999999999999
$a =9999987654321987654
でも同じ文字列が生成されてしまいます。
ソースコード
//数値はサンプルです。 $a =9999999999999999999; $b =23; //2桁以下の数字 srand((float)$a* 10000 + $b); $val = ''; for ($i = 0; $i <= 11; $i++) { $rnd = rand(0, 61); if ($rnd <= 9) { $rnd += 48; } else if($rnd <= 35) { $rnd += 55; } else { $rnd += 61; } $val .= chr($rnd); } var_dump($val);
回答2件
あなたの回答
tips
プレビュー