Heim > Artikel > Backend-Entwicklung > php,怎么 string 转 byte array?
https://segmentfault.com/q/1010000004223227?_ea=534609
在这里找到个答案,但是不明白为什么是unpack而不是pack
https://segmentfault.com/q/1010000004223227?_ea=534609
在这里找到个答案,但是不明白为什么是unpack而不是pack
再好好看看吧,这个应该很好懂吧
PHP 中的 string
的实现方式是一个由字节组成的数组再加上一个整数指明缓冲区长度。并无如何将字节转换成字符的信息,由程序员来决定。字符串由什么值来组成并无限制;特别的,其值为
0(“NUL bytes”)的字节可以处于字符串任何位置(不过有几个函数,在本手册中被称为非“二进制安全”的,也许会把 NUL
字节之后的数据全都忽略)。字符串类型的此特性解释了为什么 PHP 中没有单独的“byte”类型 - 已经用字符串来代替了。返回非文本值的函数 -
例如从网络套接字读取的任意数据 - 仍会返回字符串。
以上摘自手册 http://php.net/manual/zh/language.types.string.php
php里面string本来就是个byte array,不用转换,一般传输数字类型才需要pack。
unpack生成的array 下标是从1开始,而不是从0开始,这有点古怪