我正在用 PHP 为二进制套接字协议(protocol)编写客户端,这很痛苦。我目前正在使用 pack
将数字转换为二进制字符串,但缺少它。 pack
有两个选项:
- 以机器字节顺序写一个带符号的 32 位整数
- 以大端字节顺序写一个带符号的 32 位整数
但我需要按照大端顺序写入带符号的 32 位整数,就像 Java 的 DataOutputStream.writeInteger
一样。 pack
没有那个选项。
有没有办法用 pack
来做这个,或者转换 pack
的输出,或者有更好的库来处理 PHP 中的二进制数据?
最佳答案
您使用 Zend 框架吗?如果是这样,您可以使用函数 Zend_Io_Writer::writeInt32BE()
Writes signed 32-bit integer as big-endian ordered binary data to the stream.
否则你应该看看 ZF-source这些人是如何处理这件事的。
关于php - 在 PHP 中处理二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3863468/