Как преобразовать целое число в массив байтов в php как бы преобразовать целое число в массив из 4 байтов? Вот точный код, который я хочу для порта (в С#) int i = 123456; byte[] ar = BitConverter.GetBytes(i); // ar will contain {64, 226, 1, 0} Как я буду делать то же самое в PHP? Ответ 1 эквивалентное преобразование $i = 123456; $ar = unpack("C*", pack("L", $i)); Посмотрите на действие. Вы должны знать, что порядок байтов (маленький/большой endian) зависит от архитектуры машины (как и в случае BitConverter). Это может быть или не быть хорошо. Ответ 2 Поскольку эквивалент байтового массива в PHP является строкой, это будет делать: $bytes = pack('L', 123456); Чтобы визуализировать это, используйте bin2hex: echo bin2hex($bytes); // 40e20100 // (meaning 64, 226, 1, 0) Ответ 3 $i = 123456; $byte_array = unpack('C*', $i); var_dump($byte_array); array(6) { [1]=> int(49) [2]=> int(50) [3]=> int(51) [4]=> int(52) [5]=> int(53) [6]=> int(54) }
Ответ 1 эквивалентное преобразование $i = 123456; $ar = unpack("C*", pack("L", $i)); Посмотрите на действие. Вы должны знать, что порядок байтов (маленький/большой endian) зависит от архитектуры машины (как и в случае BitConverter). Это может быть или не быть хорошо.
Ответ 2 Поскольку эквивалент байтового массива в PHP является строкой, это будет делать: $bytes = pack('L', 123456); Чтобы визуализировать это, используйте bin2hex: echo bin2hex($bytes); // 40e20100 // (meaning 64, 226, 1, 0)
Ответ 3 $i = 123456; $byte_array = unpack('C*', $i); var_dump($byte_array); array(6) { [1]=> int(49) [2]=> int(50) [3]=> int(51) [4]=> int(52) [5]=> int(53) [6]=> int(54) }