当前位置: 首页 > 网络学院 > 服务端脚本教程 > PHP > unpack()函数

PHP
PHP 安全邮件
MySQL 介绍
连接 MySQL
创建 MySQL
MySQL 插入记录
MySQL 选择记录
MySQL Where
MySQL Order By
MySQL 记录更新
MySQL 删除记录
PHP ODBC
XML Expat Parser
XML SimpleXML
PHP 数组参考
PHP Calendar
PHP Date
PHP Directory
PHP Filesystem
PHP FTP
PHP HTTP

PHP 中的 unpack()函数


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-03-04   浏览: 507 ::
收藏到网摘: n/a

Definition and Usage
定义和用法

The unpack() function unpacks data from a binary string.
unpack()函数的作用是:将数据从二进制形式解压回来。

This function returns an array on success, or FALSE on failure.
如果函数成功执行,将返回一个字符串;如果失败,将返回False。

Syntax
语法

unpack(format,data)
 
Parameter参数 Description描述
format Required. Specifies the format to use when unpacking data.
必要参数。指定用于打包数据的格式

Possible values:
可用值如下:

  • a - NUL-padded string
    a - NUL- 字符串填满[padded string]
  • A - SPACE-padded string
    A - SPACE- 字符串填满[padded string]
  • h - Hex string, low nibble first
    h – 十六进制字符串,低“四位元”[low nibble first]
  • H - Hex string, high nibble first
    H - 十六进制字符串,高“四位元”[high nibble first]
  • c - signed char
    c – 带有符号的字符
  • C - unsigned char
    C – 不带有符号的字符
  • s - signed short (always 16 bit, machine byte order)
    s – 带有符号的短模式[short](通常是16位,按机器字节顺序)
  • S - unsigned short (always 16 bit, machine byte order)
    S – 不带有符号的短模式[short](通常是16位,按机器字节排序)
  • n - unsigned short (always 16 bit, big endian byte order)
    n -不带有符号的短模式[short](通常是16位,按大endian字节排序)
  • v - unsigned short (always 16 bit, little endian byte order)
    v -不带有符号的短模式[short](通常是16位,按小endian字节排序)
  • i - signed integer (machine dependent size and byte order)
    i – 带有符号的整数(由大小和字节顺序决定)
  • I - unsigned integer (machine dependent size and byte order)
    I – 不带有符号的整数(由大小和字节顺序决定)
  • l - signed long (always 32 bit, machine byte order)
    l– 带有符号的长模式[long](通常是32位,按机器字节顺序)
  • L - unsigned long (always 32 bit, machine byte order)
    L – 不带有符号的长模式[long](通常是32位,按机器字节顺序)
  • N - unsigned long (always 32 bit, big endian byte order)
    N – 不带有符号的长模式[long](通常是32位,按大edian字节顺序)
  • V - unsigned long (always 32 bit, little endian byte order)
    V– 不带有符号的长模式[long](通常是32位,按小edian字节顺序)
  • f - float (machine dependent size and representation)
    f –浮点(由大小和字节顺序决定)
  • d - double (machine dependent size and representation)
    d – 双精度(由大小和字节顺序决定)
  • x - NUL byte
    x – 空字节[NUL byte]
  • X - Back up one byte
    X- 后面一个字节[Back up one byte]
  • @ - NUL-fill to absolute position
    @ - NUL- 添加到一个绝对位置[absolute position]

 

data Required. Specifies the binary data to be unpacked
必要参数。指定被解压的二进制数据


Example 1
案例1

<?php
$data = "PHP";
print_r(unpack("C*",$data));
?>

The output of the code above will be:
上述代码将输出下面的结果:

Array
(
[1] => 80
[2] => 72
[3] => 80
)


Example 2
案例2

<?php
$data = "PHP";
print_r(unpack("C*myint",$data));
?>

The output of the code above will be:
上述代码将输出下面的结果:

Array
(
[myint1] => 80
[myint2] => 72
[myint3] => 80
)


Example 3
案例3

<?php
$bin = pack("c2n2",0x1234,0x5678,65,66);
print_r(unpack("c2chars/n2int",$bin));
?>

The output of the code above will be:
上述代码将输出下面的结果:

Array
(
[chars1] => 52
[chars2] => 120
[int1] => 65
[int2] => 66
)

评论 (0) All

登陆 | 还没注册?