使用扩展生成UUID

扩展下载地址:https://pecl.php.net/package/uuid
 
不同版本的扩展对PHP版本有最低要求,PHP 5.6能安装的最高版本号为1.0.5,而PHP 7.0则能安装最新的1.2.0版,下面以1.0.5版为例演示安装过程。
 
把uuid-1.0.5.tgz上传到服务器,然后使用PHP的pecl安装即可
[root@localhost ~]# /program/php/bin/pecl install uuid-1.0.5.tgz
 
修改php.ini文件,加入UUID扩展
[root@localhost ~]# vim /program/php/php.ini
………………
extension=uuid.so
………………
[root@localhost ~]# service php-fpm restart # 重启PHP-FPM使配置生效,可使用phpinfo()检查UUID扩展是否加载


 
以下是使用UUID扩展和自定义函数分别生成UUID字符串的代码:

<?php
// 使用UUID扩展生成UUID字符串
$uuid = uuid_create();
var_dump($uuid); // string(36) "e3fe4e19-c8c8-4e76-9d6c-0f6f720b13e0"


/**
 * 生成UUID字符串
 *
 * @return string UUID字符串
 */
function uuid_create_custom(): string
{
    try {
        $rand = random_bytes(1024); // 优先使用random_bytes()产生随机元素
    } catch (Exception) {
        $rand = microtime() . mt_rand(); // random_bytes()抛出异常,改为使用microtime()和mt_rand()产生随机元素
    }

    $md5 = md5($rand);

    $part1 = substr($md5, 0, 8);
    $part2 = substr($md5, 8, 4);
    $part3 = substr($md5, 12, 4);
    $part4 = substr($md5, 16, 4);
    $part5 = substr($md5, 20, 12);

    return "$part1-$part2-$part3-$part4-$part5";
}

$uuid = uuid_create_custom();
var_dump($uuid); // string(36) "57c42d26-737c-5de0-4e9d-bd7f618ef7e9"

Copyright © 2024 码农人生. All Rights Reserved