首页 > 后端开发 > php教程 > 如何使用 unpack() 将 PHP 字符串转换为字节数组?

如何使用 unpack() 将 PHP 字符串转换为字节数组?

Susan Sarandon
发布: 2024-12-04 06:02:13
原创
709 人浏览过

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板