function createId($prefix = "") { $str = md5(uniqid(mt_rand(), true)); return $prefix . $str; } // uniqid(prefix,more_entropy)
uniqid() 関数は、マイクロ秒単位の現在時刻に基づいて一意の ID を生成します。
プレフィックス オプション。 ID のプレフィックスを指定します。このパラメータは、2 つのスクリプトが同じマイクロ秒で ID を生成する場合に役立ちます。
more_entropy オプション。戻り値の最後により多くのエントロピーを指定します。
prefix パラメータが空の場合、返される文字列の長さは 13 文字になります。 more_entropy パラメータが true に設定されている場合、長さは 23 文字列になります。
more_entropy パラメーターが true に設定されている場合、追加のエントロピーが戻り値の最後に (結合線形合同生成器を使用して) 追加され、結果がより固有になります。
戻り値
一意の識別子を文字列として返します。
ヒントとメモ
注: システム時間に基づいているため、この関数によって生成される ID は最適ではありません。完全に一意の ID を生成するには、md5() 関数を使用します (文字列関数リファレンスを参照してください)
//
mt_rand() は、メルセンヌ ツイスター アルゴリズムを使用してランダムな整数を返します。
mt_rand(最小値,最大値)
説明
オプションのパラメータ min と max が指定されていない場合、mt_rand() は 0 から RAND_MAX までの擬似乱数を返します。たとえば、5 から 15 までの範囲の乱数が必要な場合は、mt_rand(5, 15) を使用します。
古い libc 乱数ジェネレーターの多くには、不確実で未知の特性があり、速度が遅いです。 PHP の rand() 関数は、デフォルトで libc 乱数ジェネレーターを使用します。 mt_rand() 関数は非公式にこれを置き換えるために使用されます。この関数は、乱数生成器としてメルセンヌ ツイスターの既知の機能を使用しており、libc が提供する rand() よりも平均して 4 倍高速に乱数値を生成できます。