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

如何将 PHP 字符串转换为字节数组?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-27 18:39:11206浏览

How Can I Convert a PHP String to a Byte Array?

在 PHP 中将字符串转换为字节数组

在 PHP 中,有多种方法可以将包含字符和数字的字符串转换为字节数组。与 Java 的 getBytes() 方法类似,这里有一些实现此转换的方法:

使用 ord() 函数

使用以下命令循环遍历字符串中的每个字符strlen()。对于每个字符,使用 ord() 函数获取其 ASCII 整数值。将这些值存储在数组或字节数组中。

for ($i = 0; $i < strlen($msg); $i++) {
    $data[] = ord($msg[$i]); // Store in an array
    // or
    $byte_array .= ord($msg[$i]); // Concatenate in a byte array
}

使用 unpack() 函数

PHP 的 unpack() 函数提供了一种简洁的方法来转换字符串转换为整数值的结构化数组。它允许您将字符串中的字符提取并重新解释为单独的字节。

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

请注意,$byte_array 数组中的值是表示每个字符的 ASCII 代码的整数,范围从 0 到 255。

考虑到提供的原始代码片段,您似乎试图将字符转换为十六进制值而不是整数值。为此,您可以在获取字符的 ASCII 代码后使用 bin2hex() 函数:

for ($i = 0; $i < strlen($msg); $i++) {
    $data .= bin2hex(chr(ord($msg[$i]))); // Convert to hex and concatenate
}

附加说明

  • unpack() 函数创建一个从 1 开始的索引数组,其中第一个元素通过以下方式访问$byte_array[1].
  • 输出字节数组可以很容易地转换为 C# 中的 byte[],因为值在 0-255 范围内。
  • 确保目标服务器在Java 需要一个字节数组,而不是字符串。

以上是如何将 PHP 字符串转换为字节数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn