PHP 使用 UUID

UUID 是 通用唯一識別碼(Universally Unique Identifier)的縮寫,是一種軟件建構的標準,亦為開放軟件基金會組織在分布式計算環(huán)境領域的一部分。
其目的,是讓分布式系統(tǒng)中的所有元素,都能有唯一的辨識信息,而不需要通過中央控制端來做辨識信息的指定。如此一來,每個人都可以創(chuàng)建不與其它人沖突的UUID。
在這樣的情況下,就不需考慮數(shù)據(jù)庫創(chuàng)建時的名稱重復問題。目前最廣泛應用的UUID,是微軟公司的全局唯一標識符,而其他重要的應用,則有Linux ext2/ext3文件系統(tǒng)、LUKS加密分區(qū)、GNOME、KDE、Mac OS X等等。另外我們也可以在e2fsprogs包中的UUID庫找到實現(xiàn)。

使用UUID的好處是,能夠保證獨立性,程序可以在不同的數(shù)據(jù)庫間遷移,效果不受影響。 保證生成的ID不僅是表獨立的,而且是庫獨立的,這點在在切分數(shù)據(jù)庫的時候尤為重要。而缺點,變是~長

CENTOS7 下安裝 UUID,需要先安裝幾個庫

yum -y install uuid uuid-devel e2fsprogs-devel libuuid-devel

然后在官網(wǎng)下載 http://pecl.php.net/package/uuid 進行編譯安裝,我下載的是 uuid-1.0.4.tgz 的

wget -c  http://pecl.php.net/get/uuid-1.0.4.tgz
tar -zxvf uuid-1.0.4.tgz
cd uuid-1.0.4
# 因為我的PHP 是裝在 exec 下,具體看各人自已的環(huán)境
/opt/php/exec/bin/phpize
./configure --with-php-config=/opt/php/exec/bin/php-config 
make && make install

裝完在 php.ini 里導入 extension=uuid.so

<?php
# 調用
echo uuid_create(1)

完整實現(xiàn)

function UUID(){
        $uuid = '';
        if (function_exists('uuid_create') === true){
            $uuid = uuid_create(1);
        }else{
            $data = openssl_random_pseudo_bytes(16);
            $data[6] = chr(ord($data[6]) & 0x0f | 0x40); 
            $data[8] = chr(ord($data[8]) & 0x3f | 0x80); 
            $uuid =  vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
        }
        return $uuid;
}
TIM截圖20180129162627.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容