PHPで一意(ユニーク)な値をお手軽に生成できる uniqid関数のメモです。
uniqid関数とは
説明
マイクロ秒単位の現在時刻にもとづいた、接頭辞つきの一意な ID を取得します。
string uniqid ([ string $prefix = "" [, bool $more_entropy = false ]] )
引数は全部で2つありますが、両方とも任意指定です。
第1引数 $prefix:追加したい接頭辞
第2引数 $more_entropy:追加のエントロピーの使用有無(初期値は false )
サンプル
$prefix を指定しない
一意な13桁の文字列を返す
//実行結果例:58ddab7574427
echo uniqid();
$prefix を指定する
接頭辞つきの一意な文字列を返す
//実行結果例:hoge_58ddab7574ff3
echo uniqid("hoge_");
$more_entropy に true を指定する
第2引数に true をセットすると、13桁の文字列にプラスしてドット( . )と9桁の数字が追加される
//実行結果例:58ddab7578fde9.20242191
echo uniqid("", true);
乱数を使う – rand
同じマイクロ秒だと同じ文字列が生成されてしまうので、乱数を使い重複のリスクを減らす
//実行結果例:65615135858ddab7578e21
echo uniqid(rand());
乱数を使う – mt_rand
rand を利用するより mt_rand の方が高速なのでおすすめ
//実行結果例:73151875358de20cb5a26a
echo uniqid(mt_rand());
乱数 + $more_entropy に true を指定
乱数と $more_entropy を指定して、より強力に一意の可能性を高める
//実行結果例:145677405658ddab75790ea7.19793837
echo uniqid(mt_rand(), true);
md5 を指定してハッシュ化
32文字の16進数を返す
//実行結果例:719deecdbfec1e13b4ed4e755ed39a47
echo md5(uniqid(mt_rand(), true));
sha1 を指定してハッシュ化
40文字の16進数を返す
//実行結果例:ad46200ced3a5a5acd6697b11926589cc279b363
echo sha1(uniqid(mt_rand(), true));
以上、uniqid関数のメモでした~。