请问如何转换成这种形式的数据?
回复讨论(解决方案)
pack()
反向是unpack()
pack()
反向是unpack()
隐约好像是pack,但这个函数有很多参数,我试过了,运行结果都显示不出类似的数据结构。
如果只用 pack 就能成,那就怪了
补充楼上的话问LZ
你不会是直接看pack()的结果吧?
pack()后的结果是字节,必须用wb方式写入文件,用支持hex的编辑器打开才能看得
而且不同的参数转换不同的字串(这个字串还要按字节考虑),慢慢研究那些参数的意思吧
补充楼上的话问LZ
你不会是直接看pack()的结果吧?
pack()后的结果是字节,必须用wb方式写入文件,用支持hex的编辑器打开才能看得
而且不同的参数转换不同的字串(这个字串还要按字节考虑),慢慢研究那些参数的意思吧
如果是字符串转成二进制。参数用a对吗?还是大写的A?
字符串就是二进制的
a 表示在指定的长度中,不足的部分用 null (0x00) 充填
A 表示在指定的长度中,不足的部分用 空格 (0x20) 充填
如果没有指定长度,也就没有什么意义了
$s = 'CSDN(www.csdn.net)';for($i=0; $i43 53 44 4e 28 77 77 77 2e 63 73 64 6e 2e 6e 65';}
74 29
字符串就是二进制的
a 表示在指定的长度中,不足的部分用 null (0x00) 充填
A 表示在指定的长度中,不足的部分用 空格 (0x20) 充填
如果没有指定长度,也就没有什么意义了
$s = 'CSDN(www.csdn.net)';for($i=0; $i43 53 44 4e 28 77 77 77 2e 63 73 64 6e 2e 6e 65';}
74 29
感觉有点复杂呀,为何一定要指定长度呢?不指定长得为何就没有意义呢?
老徐所写的定长指的是格式参数所需要的长度,而不是字符串(输入)的长度
例如手册的例子
Example #1 pack() example
$binarydata = pack("nvc*", 0x1234, 0x5678, 65, 66);
?>
The resulting binary string will be 6 bytes long and contain the byte sequence 0x12, 0x34, 0x78, 0x56, 0x41, 0x42.
因为参数n和v是16位,而c则是8位,所以后面几个参数0x1234按n参数,0x5678按v参数,65按c参数,*号表示后续继续按c参数,所以66也按c参数输出
换言之,格式参数中*号就能用于后面不定长的输入了
上一篇: 色环电阻辨认
推荐阅读
-
请问这种背景黑框固定的效果如何实现的?是css还是js_html/css_WEB-ITnose
-
mysql-跪求传值问题,如何在这种格式下将数据库表里的价格值传上去呢
-
请问如何转换成这种形式的数据?
-
SHOPEX4.8.5的商品数据如何转换成ECSHOP2.7.3的数据
-
请问jquery中的ajax如何只能发送一次数据,第二次发送如何无效
-
dataset-请问,分别来自MYSQL和MSSQL的两个Dataset,如何作为同一个数据源给数据控件?
-
php把这种形式的数据转换成汉字会丢失部分字符和数字,求转码的解决方法
-
获取数据后如何排成这种形式!
-
请问这个utf-8简单的页面,如何从数据库里取的数据中文都是问号,试的办法都不行
-
请问这个utf-8简单的页面,如何从数据库里取的数据中文都是问号,试的办法都不行