Мне нужно преобразовать системный GUID в массив Byte [16], а затем преобразовать эти десятичные значения в шестнадцатеричную строку. Сумасшедший, я знаю, и я очень открыт для более эффективного подхода, чем те, которые я пробовал!
Я пробовал PHPs unpack () функцию на этом GUID, но, похоже, не может получить правильный формат. Я пробовал 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, я могу легко использовать функцию dechex () для PHP, чтобы преобразовать каждое из этих десятичных значений в соответствующие шестнадцатеричные значения. Конечный результат этого преобразования должен выглядеть следующим образом:
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
Опять же, любые предложения приветствуются.
Я не уверен, что действительно получаю то, что вы хотите … Вам нужен массив с шестнадцатеричным значением кода ASCCI символов в вашем ID, я прав?
$str = "dwRhRSIjlGXhAAAAkuFQ0A"; $bytes = array(); for($i=0,$l = strlen($str);$i<$l;$i++) { $bytes[] = dechex(ord($str[$i])); }