使用PHP将GUID转换为Byte数组?

时间:2011-05-18 22:22:08

标签: php bytearray guid

我需要将系统生成的GUID转换为Byte [16]数组,然后将这些十进制值转换为十六进制值字符串。疯了,我知道,而且我对比我尝试过的方法更有效率的做法非常开放!

我在这个GUID上尝试过PHPs unpack()函数,但似乎无法获得正确的格式。我尝试过c *,C *和所有其他可能的格式。

这是我开始使用的GUID:

GUID: dwRhRSIjlGXhAAAAkuFQ0A

我试图填充的Byte [16]数组应该如下所示:

$bytearray = array(119,4,97,69,34,35,-108,101,-31,0,0,0,-110,-31,80,-48);

一旦我得到这个$ bytearray值,我就可以轻松使用PHPs dechex()函数将这些十进制值中的每一个转换为相应的十六进制值。此转换的最终结果应如下所示:

DEC: HEX
119: 77
4: 4
97: 61
69: 45
34: 22
35: 23
-108: 94
101: 65
-31: E1
0: 00
0: 00
0: 00
-110: 92
-31: E1
80: 50
-48: D0

同样,非常感谢任何建议。

1 个答案:

答案 0 :(得分:1)

我不确定我真的得到了你想要的东西......你想要一个带有你身份内字符的ASCCI代码的十六进制值的数组,我是对的吗?

$str = "dwRhRSIjlGXhAAAAkuFQ0A";
$bytes = array();

for($i=0,$l = strlen($str);$i<$l;$i++)
{
    $bytes[] = dechex(ord($str[$i]));
}