ホームページ  >  記事  >  バックエンド開発  >  php GUID 生成関数とクラス_PHP チュートリアル

php GUID 生成関数とクラス_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:36:191040ブラウズ

1. GUID の概要
GUID: Globally Unique Identifier (Globally Unique Identifier)、UUID (Universally Unique IDentifier) とも呼ばれます。 GUID は、特定のアルゴリズムによって生成される 128 ビットのバイナリ数値識別子で、製品の一意性を示すために使用されます。 GUID は主に、複数のノードとコンピュータを含むネットワークまたはシステム内で一意の識別子を割り当てるために使用されます。
Windows プラットフォームでは、GUID は、レジストリ キー、クラス識別子、インターフェイス識別子、データベース、システム ディレクトリなどのオブジェクトを識別するために Microsoft 製品で広く使用されています。
GUID の形式は「xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx」で、各 x は 0 ~ 9 または a ~ f の範囲の 32 桁の 16 進数です。たとえば、6F9619FF-8B86-D011-B42D-00C04FC964FF は有効な GUID 値です。
2. GUID の利点
1. GUID は空間的にも時間的にも一意であるため、同時に異なる場所で生成された異なる数値が保証されます。
2. 世界中の 2 台のコンピューターが重複した GUID 値を生成することはありません。
3. GUID が必要な場合、アルゴリズムによって完全に自動的に生成できるため、権威ある組織による管理は必要ありません。
4.GUID は固定長で比較的短いため、並べ替え、識別、保存に非常に適しています。
3. GUID生成関数

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

function create_guid() {
$charid = strtoupper(md5(uniqid(mt_rand(), true)));
$hyphen = chr(45);// "-"
$uuid = chr(123)// "{"
.substr($charid, 0, 8).$hyphen
.substr($charid, 8, 4 ).$ ハイフン
.substr($charid,12, 4).$hyphen
.substr($charid,16, 4).$hyphen
.substr($charid,20,12)
.chr(125); // " }"
return $uuid;
}

3. GUID 生成クラス
PHP は GUID クラスを取得します: guid_class.php

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

class System
{
function currentTimeMillis()
{
{
list($usec, $sec) =explode(" ",microtime());   
return $sec.substr($usec, 2, 3);   
}
}
クラス NetAddress
{
var $Name = 'localhost';   
var $IP = '127.0.0.1';   
function getLocalHost() // static
{
$address = new NetAddress();   
$address->Name = $_ENV["COMPUTERNAME"];   
$address->IP = $_SERVER["SERVER_ADDR"];   
$address を返します。   
}
関数 toString()
{
return strto lower($this->Name.'/'.$this->IP);   
}
}
クラス Random
{
関数 nextLong()
{
{
$tmp = rand(0,1)?'-':'';   
return $tmp.rand(1000, 9999).rand(1000, 9999).rand(1000, 9999).rand(100, 999).rand(100, 999);   
}
}
// 三段
// 一段は微秒 一段は地址 一段は随机数
class Guid
{
var $valueBeforeMD5;   
var $valueAfterMD5;   
function Guid()
{
$this->getGuid();   
}
//
function getGuid()
{
{
$address = NetAddress::getLocalHost();   
$this->valueBeforeMD5 = $address->toString().':'.System::currentTimeMillis().':'.Random::nextLong();   
$this->valueAfterMD5 = md5($this->valueBeforeMD5);   
}
関数 newGuid()
{
$Guid = new Guid();   
$Guid を返します。   
}
関数 toString()
{
$raw = strtoupper($this->valueAfterMD5);   
return substr($raw,0,8).'-'.substr($raw,8,4).'-'.substr($raw,12,4).'-'.substr($raw,16 ,4).'-'.substr($raw,20);   
} }


GUID类使用方法:
复制代码

代码如下:

require_once("guid.class.php");    $Guid = 新しい Guid();    print $Guid->toString();

http://www.bkjia.com/PHPjc/739779.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/739779.html技術記事
一、GUID インターフェイス GUID: 即ち、Globally Unique Identifier (全球唯一識別子) は、UUID(Universally Unique IDentifier) とも呼ばれます。 GUID は、特定の演算法によって生成される 2 つの長さです...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。