PHP GUID的生成源码

<?php 
function guid(){
    if (function_exists('com_create_guid')){
        return com_create_guid();
    }else{
        mt_srand((double)microtime()*10000);//optional for php 4.2.0 and up.
        $charid = strtoupper(md5(uniqid(rand(), true)));
        $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;
    }
}
echo guid();//{26E69265-078C-C7D9-A0CA-33348CEEE712}
function create_guid() {
    $charid = strtoupper(md5(uniqid(mt_rand(), true)));
    $hyphen = chr(45);// "-"
    $uuid = 
    substr($charid, 0, 8)
    .substr($charid, 8, 4)
    .substr($charid,12, 4)
    .substr($charid,16, 4)
    ;
    return $uuid;
}
echo create_guid();//927D69607CC9DF2160B1
?> 

 *代码中//后面标示了字符的转码如chr(45)代表“-”,chr(123)代表“{”等等,可以根据自己需要改写生成GUID的位数以及样式

 

posted @ 2016-06-13 09:28  名扬博客  阅读(1498)  评论(0编辑  收藏  举报