首頁 >後端開發 >php教程 >如何使用 unpack() 將 PHP 字串轉換為位元組陣列?

如何使用 unpack() 將 PHP 字串轉換為位元組陣列?

Susan Sarandon
Susan Sarandon原創
2024-12-04 06:02:13659瀏覽

How Can I Convert a PHP String into a Byte Array Using `unpack()`?

在PHP 中將字串轉換為位元組數組

在PHP 中,您可能會遇到將字串轉換為位元組數組的需要,尤其是在與期望的系統互動時二進位資料格式。

GetBytes() 相當於 PHP

類似Java 的 getBytes() 方法,PHP 提供了 unpack() 函數來完成此任務。與 getBytes() 傳回表示字串 Unicode 碼點的位元組陣列不同,unpack() 允許您指定自訂格式來提取特定資料。

將字串解包為整數陣列

要取得表示字串位元組值的整數數組,請使用下列unpack() 格式:

$byte_array = unpack('C*', $string);

格式字串'C*' 表示我們要解包一系列無符號字元(範圍為[0, 255]),表示字串的位元組值。

例子

舉個例子字串:「敏捷的狐狸跳過了懶惰的棕色狗」。使用上面的方法,我們可以得到對應的位元組數組:

$string = "The quick fox jumped over the lazy brown dog";
$byte_array = unpack('C*', $string);

var_dump($byte_array);

輸出:

array(44) {
  [1] => int(84)
  [2] => int(104)
  [3] => int(101)
  [4] => int(32)
  [5] => int(113)
  [6] => int(117)
  [7] => int(105)
  [8] => int(99)
  [9] => int(107)
  [10] => int(32)
  [11] => int(102)
  [12] => int(111)
  [13] => int(120)
  [14] => int(32)
  [15] => int(106)
  [16] => int(117)
  [17] => int(109)
  [18] => int(112)
  [19] => int(101)
  [20] => int(100)
  [21] => int(32)
  [22] => int(111)
  [23] => int(118)
  [24] => int(101)
  [25] => int(114)
  [26] => int(32)
  [27] => int(116)
  [28] => int(104)
  [29] => int(101)
  [30] => int(32)
  [31] => int(108)
  [32] => int(97)
  [33] => int(122)
  [34] => int(121)
  [35] => int(32)
  [36] => int(98)
  [37] => int(114)
  [38] => int(111)
  [39] => int(119)
  [40] => int(110)
  [41] => int(32)
  [42] => int(100)
  [43] => int(111)
  [44] => int(103)
}

可以看到,輸出數組包含了字串,從 1 開始索引。

以上是如何使用 unpack() 將 PHP 字串轉換為位元組陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn