【发布时间】:2016-07-07 22:24:59
【问题描述】:
我有一个共享内存区域,我希望通过在 Web 服务器中运行的 PHP 访问该区域。共享内存的布局,前 4 个字节是一个 32 位无符号整数,其中包含剩余共享内存区域内有多少字节是有效数据(数据可以是可变大小),即:
Byte Range Value
------------------ -----------------------------------------------
0 - 3 32-bit unsigned integer - call it numBytes
4 - (numBytes + 4) char array - The actual data, total of numBytes
如何将前四个字节读取为整数?我唯一能想到的就是执行shmop_read($key, 0, 4) 并将返回的字符串值转换为数组,然后将该数组转换为整数,如here 所述。这一切似乎都很混乱,我想知道是否有更清洁的方法来做到这一点?
【问题讨论】:
-
也许它只是一个
unpack("V", shmop_read($key, 0, 4));。但是你能发一个var_dump(shmop_read($key, 0, 4));吗? -
看了
unpack()之后我觉得你的回答是正确的。我将无法测试它一天左右;很遗憾。您能否将您的评论作为答案,因为我无法将评论标记为答案。
标签: php arrays integer shared-memory