※ 本記事はプロモーションを含みます

【PHP】ユニークなIDを生成する – uniqid

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関数のメモでした~。