2016-07-22 123 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具有非十六進制字符,此腳本不起作用。 –

相關問題