php - 在 PHP 中使用 PACK 在块中创建长二进制字符串
问题描述
我正在尝试在嵌入式设备和服务器之间进行通信,其中服务器代码是用 PHP 编写的。我已经能够使用 pack() 函数来做到这一点,我能够开始工作。但是,现在,我想发送一个非常长的数据包,并且数据包本身包含某个时间表的 N 个条目。所以我必须在多次迭代之前发送“N”的信息,然后必须发送每个时间表。
现在,我试图查看 pack() 输出的串联是否可以帮助我完成任务,从那时起,我将能够执行以下操作:
// Pack EPOCH & Number of Schedules
$pkt = pack("Nn", time(), $num_schedule);
// Now iterate
$i = 0;
while($i < $num_schedule) {
$schedule_time = $schedule[$i]["time"] // Start Time in epoch for one day
$schedule_weekday = $schedule[$i]["weekday"] // Contains 0-6
// Pack individual entry, concatenate!
$pkt .= pack("nn", $schedule_time, $weekday);
$i++;
}
但是连接并没有按预期工作(正如在嵌入式设备上解包所证实的那样)。我怀疑某些“字节序”可能在起作用?
有人可以告诉我为什么简单的串联不起作用。另外,如何解决这个问题?
解决方案
推荐阅读
- json - 如何使用 XSLT 1.0 中的“替换”功能从我的 XML 中删除特殊字符以获得正确的 JSON 输出?
- excel - 如何在 VBA 中与不在 DOM 中的元素进行交互
- dynamics-crm - 如何获得“哪些更新的字段可以触发 Dynamics CRM 工作流”?
- scala - 如何从自定义类型开始一个空变量?
- c# - 当我在夹具类中创建新的自定义 FluentValidator 对象时,.Net Core 3.1 Xunit 运行测试会导致堆栈溢出错误
- javascript - 将旧的 wordpress 简码插件转换为块
- json - 带有 JSON 的 Kendo Grid .NET Core 模板
- vbscript - 在组 AD VBS 中查找用户非常慢
- c++ - C++ 这些对象是存放在堆里还是栈里?
- python - Pandas 旋转多列