我需要用16进制和TCP客户端的硬件做通信
我在网上找了很多发送和接收16进制数据的方法
比如:
1.
接收16进制数据
当收到数据后用函数bin2hex($data)可以将数据转换成16进制。
发送16进制数据
发送数据前用hex2bin($data)将16进制数据转换成二进制发送。
2.
$cont='1ab63c082d6e';
Gateway::sendToClient($client_id,pack("H*",$cont)) ;
发送后,收到1a b6 3c 08 2d 6e
这种是发送固定16进制序列,而我需要自定义16进制数组,因为可能会根据实际情况发送不同的数值,可能会改变数组中的某些元素
那么问题来了,怎么定义这个16进制数组,并且以16进制的形式发送出去?
我是搞单片机的,PHP刚开始学,谢谢各位大神!
php 里字符串就是数组吧,可以通过下标来更改某个字节的值的。
比如
$str = 'abcdefg';
$str = 'a';
var_export($str);
输出
aacedefg
你好!
比如我某个任务输出了一个数组$arr=array(0XEB,0XFC,0X03,0XD4,0xAA);
怎么把这个数组转化成‘ebfc03d4aa’呢?
好像转成这个序列才能通过TCP发送出去
bin2hex(implode('', array_map('chr', $arr)));