在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中文網其他相關文章!