PHP将字节数组写入tcp流

时间:2015-12-11 18:10:27

标签: php arrays

我正在尝试将一些二进制数据(在无符号字符数组中)写入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表示。

想法?

1 个答案:

答案 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。