PHP中的字符串到字节数组

如何从某个包含数字,字母等的字符串中获取字节数组?如果您熟悉Java,那么我正在寻找与getBytes()方法相同的功能。

我尝试了如下代码段:

for($i = 0; $i < strlen($msg); $i++){

$data.=ord($msg[$i]);

//or $data[]=ord($msg[$1]);

}

但没有成功,因此将不胜感激。

PS:为什么我完全需要这个!好吧,我需要通过fputs()将字节数组发送到用Java编写的服务器…

回答:

@Sparr是正确的,但是我想您期望像byte[]C#中那样的字节数组。它与Sparr的解决方案相同,但是您希望每个int显示的内容不是HEX,而是期望的呈现(

范围为0到255char。您可以执行以下操作:

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

var_dump($byte_array); // $byte_array should be int[] which can be converted

// to byte[] in C# since values are range of 0 - 255

通过使用,var_dump您可以看到元素是int不是string)。

   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开始的索引(正如注释中指出的那样)

以上是 PHP中的字符串到字节数组 的全部内容, 来源链接: utcz.com/qa/408357.html

回到顶部