ホームページ  >  記事  >  php教程  >  PHP はローカルの一意の識別コード LUID のコードを生成します

PHP はローカルの一意の識別コード LUID のコードを生成します

WBOY
WBOYオリジナル
2016-06-13 11:57:37901ブラウズ

UUID (Universally Unique Identifier) と GUID は、分散コンピューティング環境で必要となる、空間と時間の範囲全体にわたって一意の識別コードを生成することを目的としていますが、制限されたローカル環境でのみ一意の識別子を生成したい場合は、 UUID を使用する「ローカル一意の識別子」はやりすぎです。この「ローカル一意の識別子」を私は LUID (Local Unique Identifier) と呼んでいます。

たとえば、php を使用して Web サイトのプログラムを開発する場合、ユーザーが同時に同じ Web ページを複数回開くことによって引き起こされるセッション名の競合を避けるために、保存されたセッションが $_SESSION['param'] ではなく $_SESSION[$luid]['param'] であることを望みます。他の人の解決策を検索した後、他のメソッドに $ を渡し、「param」パラメータが上書きされないようにします。UUID を生成するためのアルゴリズムは数百行あると考えました。 SESSION 空間内にあるため、制限されています。環境の一意性は、同じ SESSION の有効期間内で一意である限り、それほど高くする必要はありません。そのため、次のコードが利用可能です:

コードをコピーします コードは次のとおりです:


/**
* ローカル システム内で一意の文字列を返します。
* は、「7dac352074f221f3edc74d265c65a636」や「d198d8fc56ffed627f3f8313d6f06acf」などの 32 文字の文字列を返します。*/
function LUID(){
return MD5(microtime());
}


論理的には、これは 1 行です。つまり、microtime() が返す文字列はすでに一意であるため、microtime() を連続して実行した場合でも、ユーザーのクリックとネットワーク上の送信の間隔によって戻り値に 100us 以上の差が生じます。また、サーバーによる処理は数十ミリ秒をはるかに超えています。md5 を追加すると、結果が乱雑になるだけです。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。