我需要将系统生成的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
同样,非常感谢任何建议。
答案 0 :(得分:1)
我不确定我真的得到了你想要的东西......你想要一个带有你身份内字符的ASCCI代码的十六进制值的数组,我是对的吗?
$str = "dwRhRSIjlGXhAAAAkuFQ0A";
$bytes = array();
for($i=0,$l = strlen($str);$i<$l;$i++)
{
$bytes[] = dechex(ord($str[$i]));
}