2016-07-22 130 views
0

我的GUID这种格式有没有办法在PHP中将GUID转换为UUID?

2k9E4A8DFpFFYsfNkKz5fnx61Ry2xAoO 

另一个例子:

MI5kvu_WGg3MLB4l18UG4oJ63a1H8uF_ 

但我需要他们在这个格式:

4a9209bd-9252-4914-01a3-24c283062394 

有没有办法将它们转换在PHP?你将如何将它们转换回来(从UUID到GUID)?

+1

他们只是字符串。仅仅因为他们是指导并不能让他们神奇地变得不同。使用[字符串函数](http://php.net/manual/en/ref.strings.php)。 –

+0

@MarcB字节顺序是不同的https://en.wikipedia.org/wiki/Globally_unique_identifier#Binary_encoding所以它们不只是一个字符串。 –

+0

什么字节顺序? 'oO'不完全是一个有效的十六进制数字。 OP有什么是一个字符串。 –

回答

-1

快速ñ脏功能把你的原件并将其捏造成所需要的图案

$guid='2k9E4A8DFpFFYsfNkKz5fnx61Ry2xAoO'; 

function makeuuid($g){ 
    $a=array(
     substr($g,0,8), 
     substr($g,8,4), 
     substr($g,12,4), 
     substr($g,16,4), 
     substr($g,20,strlen($g)) 
    ); 
    return implode('-',$a); 
} 
echo makeuuid($guid); 

/* outputs: 2k9E4A8D-FpFF-YsfN-kKz5-fnx61Ry2xAoO */ 
+0

[在其规范形式中,UUID由32个小写十六进制数字表示](https://en.wikipedia.org/wiki/Universally_unique_identifier#Definition) – Finwe

+0

因此,如果我们要在上面使用strtolower()代码,是否可以解决问题并获得正确的结果? –

+1

噢,我看到了,因为GUID具有非十六进制字符,此脚本不起作用。 –

相关问题