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