PHPマニュアル/PEARマニュアル | ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot

uniqid - 一意な ID を生成する | JavaScript入門&応用&リファレンスなら「JavaScriptist」

  

uniqid

(PHP 4, PHP 5, PHP 7)

uniqid一意な ID を生成する

説明

string uniqid ([ string $prefix = "" [, bool $more_entropy = false ]] )

マイクロ秒単位の現在時刻にもとづいた、接頭辞つきの一意な ID を取得します。

警告

この関数が生成する値は、暗号学的に安全ではありません。そのため、これを暗号として使ってはいけません。暗号学的に安全な値が必要な場合は、random_int()random_bytes() あるいは openssl_random_pseudo_bytes() を使いましょう。

警告

This function does not guarantee uniqueness of return value. Since most systems adjust system clock by NTP or like, system time is changed constantly. Therefore, it is possible that this function does not return unique ID for the process/thread. Use more_entropy to increase likelihood of uniqueness.

パラメータ

prefix

これが有用なのは、たとえば複数ホストで同時に ID を生成するような場合です。このような場合、同じマイクロ秒で同じ ID が生成されてしまう可能性があります。

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

more_entropy

TRUE にすると、uniqid() は 返り値の最後にさらに別のエントロピーを (線形合同法を使用して) 追加します。これにより、結果が一意になる可能性を高めます。

返り値

タイムスタンプにもとづいた一意な識別子を文字列で返します。

警告

This function tries to create 一意な識別子, but it does not guarantee 100% uniqueness of return value.

例1 uniqid() の例

<?php
/* 一意なID、たとえば 4b3403665fea6 */
printf("uniqid(): %s\r\n"uniqid());

/* IDに接頭辞をつけることもできます。これは次のように書くのと
 * 同じです
 *
 * $uniqid = $prefix . uniqid();
 * $uniqid = uniqid($prefix);
 */
printf("uniqid('php_'): %s\r\n"uniqid('php_'));

/* more_entropy パラメータも使えます。Cygwin などのシステムで
 * 必要となるでしょう。これは、uniqid() が生成する値をたとえば
 * 4b340550242239.64159797 のような形式にします。
 */
printf("uniqid('', true): %s\r\n"uniqid(''true));
?>

注意

注意:

Cygwin でこの関数を動作させるには、 more_entropyTRUE にする必要があります。


忘却曲線を使ってこの関数を確実に記憶に残す

フォーラムで「uniqid - 一意な ID を生成する」について話す
各種マニュアル: PHPマニュアル | PEARマニュアル | Smarty(英語)マニュアル | PHP-GTKマニュアル | uniqid - 一意な ID を生成する」をGoogle検索
copyright © 1997-2024 PHP ドキュメント作成グループ(ライセンス). provided by php spot. マニュアル: