Php脚本用于写入和读取字和字节

时间:2012-05-24 10:29:52

标签: php word byte

我有一个用PHP脚本控制的eeprom。 我可以控制这个eeprom读取和写入字(16位)的参数,其中一些可以控制两个不同的参数,可以用十进制的十六进制数据写入字的第一个或第二个字节(8位)。 有一种方法可以在php中编写一个单词(可以自由编写第一个或第二个字节)吗?

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找pack()

// Unsigned decimal values of the bytes
$firstOctet = 125;
$secondOctet = 213;

$byte = pack('C', $firstOctet);
$word = pack('C*', $firstOctet, $secondOctet);

您可能需要将整数类型的值提供给pack(),如果您想在代码中将它们表示为Hex,则可以执行以下操作之一:

// Both of these are identical to "$firstOctet = 125;"
$firstOctet = 0x7D;
$firstOctet = hexdec('7D');

或者,您可以使用以下语法在字符串中声明文字十六进制字节:

// These should produce the same results as the pack() example
$byte = "\x7D";
$word = "\x7D\xD5";

如果您需要将要读回的字节转换回整数进行处理,可以使用补充函数unpack()

$word = "\x7D\xD5";
$bytes = unpack('C*byte', $word);
print_r($bytes);
/*
  Array
  (
      [byte1] => 125
      [byte2] => 213
  )
*/