php - 在 PHP 中处理二进制数据

标签 php sockets networking binary endianness

我正在用 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/

相关文章:

sockets - 获取一个随机的、仍然可用的高端口号

c# - HttpContext.Response基础套接字意外关闭

linux - 我们在使用套接字时应该处理什么错误

java - 通过 LAN 将 DatagramPacket 从一台 PC 发送到另一台 PC

javascript - 使用 Jquery .post 方法进行验证

PHP 配置 : are max_execution_time and max_input_time values measured in seconds?

Java:通过套接字发送后公钥不同

php - 我想连接两个表,在基本模型中,它们的 id 在 Laravel 中是未知的,我不知道如何获取准确的结果

javascript - 设置文本区域中各行的样式

python - 在 Python 中查询现有套接字的地址族