Php 在不删除尾随空字节或空格的情况下解压缩数据
如果你做了Php 在不删除尾随空字节或空格的情况下解压缩数据,php,pack,unpack,Php,Pack,Unpack,如果你做了提取(解包('a*demo','a\0\0');echo strlen($demo)你不会得到4回-你会得到1回。这是因为per的a是一个“NUL填充字符串”,因此后面的NUL字节将被删除 我的问题是。。。有没有办法使它们不被移除 我可以做A*demo而不是A*demo,这样空字节就不会被删除,但是尾随空格会被删除。如果你想要整个字符串,为什么要解包一个字符串?天哪,如果我所做的只是输出4为什么我不直接做echo4?杜尔。说真的,这只是一段人为的代码片段,演示了我遇到的问题。如果感觉太
提取(解包('a*demo','a\0\0');echo strlen($demo)代码>你不会得到4回-你会得到1回。这是因为per的a
是一个“NUL填充字符串”,因此后面的NUL字节将被删除
我的问题是。。。有没有办法使它们不被移除
我可以做A*demo
而不是A*demo
,这样空字节就不会被删除,但是尾随空格会被删除。如果你想要整个字符串,为什么要解包一个字符串?天哪,如果我所做的只是输出4
为什么我不直接做echo4代码>?杜尔。说真的,这只是一段人为的代码片段,演示了我遇到的问题。如果感觉太做作了,那就假装我发布了摘录(解包('avar/a*demo','aa\0\0');echo strlen($demo)代码>取而代之。现在我再也不能得到整根绳子了。更好?你能确定感兴趣的子串的开始和结束位置吗?是的。我可以使用多个子字符串将特定文件映射到各种变量,但与其使用100个子字符串,不如使用1xunpack
。当然,我可以做stru\u pad
来添加unpack
正在删除的空字节,但如果我不必这样做那就太好了。。我也在研究sscanf
作为替代方案,但也遇到了一些问题: