我正在使用以下两个函数将uuid转换为二进制并返回。但是,转换后的 uuid 值在转换为二进制后不会返回旧值。我应该怎么做,或者我不理解这里的概念。
function uuid_to_bin($uuid){
$bin_uuid = pack("H*", str_replace('-', '', $uuid));
return $bin_uuid;
}
function bin_to_uuid($binid)
{
$arr= unpack("H*", $binid);
$string = $arr['1'];
$string = preg_replace("/([0-9a-f]{8})([0-9a-f]{4})([0-9a-f]{4})
([0-9a-f]{4})([0-9a-f]{12})/", "$1-$2-$3-$4-$5", $string);
return $string;
}
使用 https://github.com/ramsey/uuid,它已经正确实现了转换。
见 https://github.com/ramsey/uuid/blob/29fb62b48611761b4c0c4e8f4a428cad19c2b690/src/Codec/StringCodec.php#L61-L100