unpack()函數是PHP中的內置函數,用於將二進製字符串解壓縮為相應的格式。
用法:
array unpack( $format, $data, $offset )
參數:此函數接受上述和以下所述的三個參數:
-
$format:它是必填參數。它指定打包數據時要使用的格式。
- a –表示為NUL-padded的字符串。
- A –表示字符串SPACE-padded。
- 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 –表示NUL字節。
- X –表示備份一個字節。
- Z –表示為NUL-padded的字符串。
- @ –表示NUL-fill到絕對位置。
- $data:它是必需參數。它指定要解壓縮的二進製數據。
- offset:此參數保存從拆包開始的偏移量。
返回值:成功返回包含未打包元素的關聯數組,失敗則返回FALSE。
注意:此函數可用於PHP 4.0.0和更高版本。
示例1:該程序使用C格式從二進製字符串解壓縮數據。
<?php
var_dump( unpack("C*", "GEEKSFORGEEKS"));
?>
輸出:
array(13) { [1]=> int(71) [2]=> int(69) [3]=> int(69) [4]=> int(75) [5]=> int(83) [6]=> int(70) [7]=> int(79) [8]=> int(82) [9]=> int(71) [10]=> int(69) [11]=> int(69) [12]=> int(75) [13]=> int(83) }
示例2:
<?php
$binary_data = pack("c2n2", 0x1634, 0x3623, 65, 66);
var_dump(unpack("c2chars/n2int", $binary_data));
?>
輸出:
array(4) { ["chars1"]=> int(52) ["chars2"]=> int(35) ["int1"]=> int(65) ["int2"]=> int(66) }
示例3:本示例使用i格式從二進製字符串解壓縮數據。
<?php
$binary_data = pack("i3", 56, 49, 54);
var_dump(unpack("i3", $binary_data));
?>
輸出:
array(3) { [1]=> int(56) [2]=> int(49) [3]=> int(54) }
參考: https://www.php.net/manual/en/function.unpack.php
相關用法
- p5.js sin()用法及代碼示例
- PHP tan( )用法及代碼示例
- d3.js d3.hsl()用法及代碼示例
- p5.js tan()用法及代碼示例
- PHP key()用法及代碼示例
- p5.js log()用法及代碼示例
- p5.js cos()用法及代碼示例
- PHP pos()用法及代碼示例
- PHP end()用法及代碼示例
- PHP each()用法及代碼示例
- p5.js second()用法及代碼示例
注:本文由純淨天空篩選整理自gekcho大神的英文原創作品 PHP | unpack() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。