3

我正在尝试通过 PHP 套接字发送数据的二进制表示。

因此,如果数字是 15,socket_write将发送 00001111 作为 15 的二进制表示。

我该怎么做?

4

2 回答 2

4

使用chr功能:

socket_write( $fp, chr(15));

您还可以使用\x带有十六进制值的转义:

socket_write( $fp, "\xff\xff\xff\xff" );

将发送 4 个字节,每个字节的值为 255。

于 2013-01-14T07:06:00.330 回答
2

要从任意数据生成二进制表示,请使用该pack()函数。

例子:

$data = pack("v", 15); // "i" is unsigned little endian integer
socket_write($socket, $data);

有关各种格式的更多信息,请参见手册页。还有unpack()反向功能。

于 2013-01-14T07:11:29.210 回答