當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


PHP unpack()用法及代碼示例


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



相關用法


注:本文由純淨天空篩選整理自gekcho大神的英文原創作品 PHP | unpack() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。