我正在尝试将一些二进制数据(在无符号字符数组中)写入tcp流,数据如下所示:
array(44) {
[0]=>int(0)
[1]=>int(44)
[2]=>int(10)
[3]=>int(0)
[4]=>int(5)
[5]=>int(108)
[6]=>int(111)
[7]=>int(103)
...
我想要的是一个包含相同二进制字节的字符串,我可以将其扔进fwrite()以将这些字节发送到TCP连接。
我尝试过使用join等的所有东西,到目前为止已经以ascii等价物结束了(例如,第一个字节最终为0x30,ascii' 0'而不是0x00)
我最终需要的是字符串中的二进制数据,即0x00,0x2C,0x0A,而不是数据的ascii表示。
想法?
答案 0 :(得分:0)
你可以使用函数" decbin()"将整数转换为二进制格式。
在此之后,您可以将二进制代码发送到TCP连接。
这是一个代码示例:
<?php
$numbers = array(
0 => "0",
1 => "1",
2 => "2"
);
$bin = decbin($numbers[1]);
$bin = substr("00000000",0,8 - strlen($bin)) . $bin;
echo $bin;
?>
数字1的输出为00000001。