PHP处理二进制数据的实现方法

PHP处理二进制数据需要用到pack()和unpack()。

pack()用来将数据转成二进制数据,使用方法如下:

pack(“LL”, 0,1);

pack(“C”, a);

unpack()可以将二进制数据解析成关系数组,它接受2个参数,使用方法如下:

$arr = unpack(“Chead”, $binstream);   //读取第1个字节

$arr = unpack(“Chead/C3string/C4number”, $binstream);  //读取8个字节,用斜杠可以分隔

pack()和unpack()函数的第一个参数表如下

■a:NULL填充的字节串

■A:空格填充的字节串

■h:十六进制数,低四位字节优先

■H:十六进制数,高四位字节优先

■c:有符号字符

■C:无符号字符

■s:有符号短整型(总是16位,机器字节序)

■S:无符号短整型(总是16位,机器字节序)

■n:无符号短整型(总是16位,大尾字节序)

■v:无符号短整型(总是16位,小尾字节序)

■I:有符号整型(机器相关大小和字节序)

■I:无符号整型(机器相关大小和字节序)

■l:有符号长整型(总是32位,机器字节序)

■L:无符号长整型(总是32位,机器字节序)

■N:无符号长整型(总是32位,大尾字节序)

■V:无符号长整型(总是32位,小尾字节序)

■f:浮点数(机器相关大小和表示)

■d:双精度数(机器相关大小和表示)

■x:空字节

■X:倒退一个字节

■@:用NULL填充绝对位置

以上这篇PHP处理二进制数据的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

时间: 2024-10-25 22:45:51

PHP处理二进制数据的实现方法的相关文章

XML中二进制数据的处理方法

xml|二进制|数据 在xml中,所有的数据都是以文本的形式来显示,但是二进制数据不能直接以文本格式来表示,那xml又是怎么处理二进制数据的呢?下面就来探讨一下. 为了简单和通用性,xml被设计成了以文本的格式来表示数据.在xml中,所有的数据都是以文本的格式来存储,二进制数据也不例外.在xml中,二进制数据也要被编码成文本的格式,发送到目的方.目的方接收到这个文本二进制数据以后,再以相同的解码程序解成相应的二进制数据,当然数据原来的格式,名称等辅助信息一定要当作相关信息一起发送.一般二进制数据

ajax中获取和发送二进制数据的方法

  用ajax从服务器端获取二进制时, 需要用overrideMimtType设置request头,让浏览器不要修改读取的的数据,方法如下: var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function(){ if (xhr.readyState=== 4 && xhr.status === 200){ var imgdata = xhr.response; } } xhr.open("GET",ur

方法-C# 二进制数据取反问题

问题描述 C# 二进制数据取反问题 二进制 string="1111 1111",现在我要对这个二进制全部取反,和对二进制的后面四位取反.代码应该怎么写呢.最好是.Net自带的取反方法和进制转化方法. 解决方案 string test="11111111" for (int i = 0; i < test.Length; i++) { Data[i] = Convert.ToInt32(test.Substring(i, 1)); if (Data[i] ==

MSSQL 将截断字符串或二进制数据问题的解决方法_MsSql

地图数据存放在sqlserver 2008中,使用mapxtreme7 开发时,使用Feature.Update()方法时出错的提示包含"MSSQL 将截断字符串或二进制数据" 主要原因就是给某个字段赋值时,内容大于字段的长度或类型不符造成的 解决方法: 一个是修改数据库字段大小: 再一就是是加强数据强壮性,严格的输入判断. 防止添加的信息类型或者长度与数据库表中字段所对应的类型不符合.

C++实现string存取二进制数据的方法_C 语言

本文实例讲述了C++实现string存取二进制数据的方法,分享给大家供大家参考.具体方法分析如下: 一般来说,STL的string很强大,用起来也感觉很舒服,这段时间在代码中涉及到了用string存取二进制数据的问题,这里记录一下,以供以后参考. 首先提一下STL中string的参考资料:http://www.cplusplus.com/reference/string/string/ ,不懂的朋友可以看下. 在数据传输中,二进制数据的buffer一般用系统预设的大数组进行存储,而不是STL的s

MySQL使用二进制日志来恢复数据二种方法

MySQL使用二进制日志来恢复数据二种方法 如果MySQL服务器启用了二进制日志,你可以使用mysql教程binlog工具来恢复从指定的时间点开始 (例如,从你最后一次备份)直到现在或另一个指定的时间点的数据.关于启用二进制日志的信息,参见5.11.3节,"二进制日志".对于 mysqlbinlog的详细信息,"mysqlbinlog:用于处理二进制日志文件的实用工具". 要想从二进制日志恢复数据,你需要知道当前二进制日志文件的路径和文件名.一般可以从选项文件(即m

使用node.js中的Buffer类处理二进制数据的方法_node.js

前言 在Node.js中,定义了一个Buffer类,该类用来创建一个专门存放二进制数据的缓存区.这篇文章就详细介绍了node.js中的Buffer类处理二进制数据的方法,下面话不多说,来看看详细的介绍. 创建Buffer对象 第一种:直接使用一个数组来初始化缓存区 var arr = [0,1,2] var buf = new Buffer(arr) console.log(buf) 执行效果: 第二种:直接使用一个字符串来初始化缓存区 var str = 'hello' var buf = n

MSSQL 将截断字符串或二进制数据问题的解决方法

地图数据存放在sqlserver 2008中,使用mapxtreme7 开发时,使用Feature.Update()方法时出错的提示包含"MSSQL 将截断字符串或二进制数据" 主要原因就是给某个字段赋值时,内容大于字段的长度或类型不符造成的 解决方法: 一个是修改数据库字段大小: 再一就是是加强数据强壮性,严格的输入判断. 防止添加的信息类型或者长度与数据库表中字段所对应的类型不符合.

用VB将WORD文档(或其他的二进制数据)生成xml文件并互相转换

word|xml|二进制|生成xml|数据|转换 用vb将word文档(或其他的二进制数据)生成xml文件并互相转换1.    建立一个新的vb工程2.    引用 Microsoft XML,版本 2.0 或以上3.    在窗体form1上建立按钮 cmdCreateXML 和 cmdGetBinary 代码:Option ExplicitDim oDoc As DOMDocumentDim DOCINPATH As StringDim XMLOUTPATH As StringDim DOC