PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのuniqid()関数の使い方を徹底解説!一意なIDを生成する方法

PHPのuniqid()関数は、現在の時刻をマイクロ秒単位で取得し、それをもとに一意なID(ユニークな識別子)を生成する関数です。セッションIDやファイル名、トークンの生成など、さまざまな場面で活用できます。

基本構文

uniqid(prefix, more_entropy)

パラメータ

  • prefix − 生成されるユニークIDの先頭に付加する接頭辞(プレフィックス)を指定します。省略可能です。

  • more_entropy − 戻り値の末尾に追加のエントロピー(乱数要素)を付けるかどうかを指定します。trueを設定すると、より一意性の高いIDが生成され、戻り値は13文字+小数点以下の文字列になります。

戻り値

uniqid()関数は、生成された一意な識別子を文字列(string)として返します。

使用例

以下は、uniqid()関数を使ってユニークIDを生成する基本的なサンプルコードです。

<?php
   echo uniqid();
?>

実行結果

上記コードを実行すると、次のような出力が得られます。

5bfd5bd045faa

補足:より一意性を高めるには

デフォルトでは時刻ベースのIDが生成されるため、同一マイクロ秒内に複数回呼び出すと同じIDが返される可能性があります。その場合は、第2引数のmore_entropytrueを指定することで、衝突のリスクを大幅に減らせます。

<?php
   echo uniqid('item_', true);
?>

このようにprefixと組み合わせれば、「item_5bfd5bd045faa1.23456789」のように用途がひと目でわかるIDを作成することも可能です。

注意点

uniqid()は便利ですが、時刻情報に基づいているため予測可能性があります。セキュリティが重要な場面(パスワードリセット用トークンなど)では、random_bytes()bin2hex(random_bytes())など、暗号学的に安全な乱数生成関数を使用することを推奨します。

  1. PHPのlog()関数とは?自然対数の計算方法と使い方を解説

    定義と使い方log() 関数は、数値の自然対数(natural logarithm)を計算します。対数とは、指数関数の逆演算のことです。たとえば 102=100 という関係は「log10100=2」と表せます。自然対数はオイラー数 e を底として計算され、PHP では定義済み定数 M_E によって e の値(2.7182818284590452354)が提供されています。具体例を挙げると、exp(4.60517018599)=100(つまり e4.60517018599=100)が成り立つため、loge100=4.60517018599 となります。PHP では、この自然対数(loge)を l

  2. PHPのlcg_value()関数とは?乱数生成の基本と使い方を解説

    lcg_value()関数の定義と使い方lcg_value()関数は、0から1までの範囲でランダムな数値(浮動小数点数)を生成するPHP組み込み関数です。「LCG」とは「線形合同法(Linear Congruential Generator)」の略称です。この手法は、不連続な区分線形方程式を用いて擬似乱数列を計算するアルゴリズムで、擬似乱数生成アルゴリズムの中でも最も古くから知られているものの一つです。構文lcg_value ( void ) : floatパラメータこの関数は引数を受け取りません。戻り値lcg_value()関数は、0.0以上1.0以下の範囲にある擬似乱数のfloat値を返し