ホームページ >バックエンド開発 >PHPの問題 >phpは一意のIDを生成します

phpは一意のIDを生成します

(*-*)浩
(*-*)浩オリジナル
2019-09-27 10:13:122613ブラウズ

一意で重複しない識別子を生成するには、主に現在時刻を使用し、それを md5 値に変換します。これにより、ラベルの一意性がほぼ保証されます。PHP で重複しない識別子を生成するためのプログラム コードをいくつか示します。

phpは一意のIDを生成します

php 組み込み関数 uniqid()

## uniqid() 関数は、現在の時間をマイクロ秒単位で指定し、一意の ID を生成します。 (推奨学習: PHP プログラミングの入門から習熟まで )

w3school リファレンス マニュアルには次の文があります。関数によって生成された ID は最適ではありません。完全に一意の ID を生成するには、md5() 関数を使用してください。

次のメソッドは同様の結果を返します: 5DDB650F-4389-F4A9-A100-501EF1348872

function uuid() {
    if (function_exists ( 'com_create_guid' )) {
        return com_create_guid ();
    } else {
        mt_srand ( ( double ) microtime () * 10000 ); //optional for php 4.2.0 and up.随便数播种,4.2.0以后不需要了。
        $charid = strtoupper ( md5 ( uniqid ( rand (), true ) ) ); //根据当前时间(微秒计)生成唯一id.
        $hyphen = chr ( 45 ); // "-"
        $uuid = '' . //chr(123)// "{"
substr ( $charid, 0, 8 ) . $hyphen . substr ( $charid, 8, 4 ) . $hyphen . substr ( $charid, 12, 4 ) . $hyphen . substr ( $charid, 16, 4 ) . $hyphen . substr ( $charid, 20, 12 );
        //.chr(125);// "}"
        return $uuid;
    }
}

php メソッドでグローバル一意識別子 (GUID) を生成します

GUID は空間と時間において一意であり、同時に異なる場所で生成された異なる番号が異なることを保証します。

世界中の 2 台のコンピューターが重複した GUID 値を生成することはありません。

GUID が必要な場合、アルゴリズムによって完全に自動的に生成できるため、権限のある組織による管理は必要ありません。

GUID は固定長で比較的短いため、並べ替え、識別、保管に非常に適しています。

rree

以上がphpは一意のIDを生成しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。