uniqid

(PHP 3, PHP 4, PHP 5)

uniqid -- ユニークな ID を生成する

説明

string uniqid ( [string prefix [, bool more_entropy]] )

uniqid() は、ミリ秒単位の現在時刻に基づき 先頭辞(prefix)を付けたユニークな ID を返します。prefix は オプションですが、有用です。例えば、いくつかのホスト上で同時に ID を生成させる場合、全く同じ ID が生成されるのを防ぐことができます。 PHP 4.3.1 以前では、prefix には 114 文字までの 長さしか指定できませんでした。

オプションの more_entropy パラメータが TRUE の場合、 uniqid() は、より結果をユニークにするために、 combined linear congruential generator を用いた結果を返り値の最後に追加します。

prefix を空とした場合、返される文字列の長さは、 13 文字となります。more_entropyTRUE の場合は、 23 文字となります。

注意: prefix パラメータは PHP 5 ではオプションとなります。

ユニークな ID またはトークンが必要な場合、そして、ネットワーク経由で ユーザにそのトークンを渡そうとする場合(例えば、セッションクッキー)、 次の例のようにするのが推奨されます。

<?php
// prefix なし
$token = md5(uniqid());

// よりよい方法。推測されにくい
$better_token = md5(uniqid(rand(), true));
?>

この例は、極めて予測困難な 32 文字の ID(128 ビット 16 進数) を作成します。