INTRO
我有两个字节串。 第一个是从十六进制代码数组开始创建的,并使用 for cicle来创建字节字符串:
$codes = ["02", "66", "6c", "6a", "3a", "03"];
$bytestring1 = "";
for ($i = 0; $i < count($codes); $i++) $byteString1 .= "\x" . $codes[$i];
创建第二个字符串是直接手写的:
$bytestring2 = "\x02\x66\x6c\x6a\x3a\x03";
我的预期
我希望$bytestring1
和$bytestring2
完全相同。
发生什么
当我使用 socket_send 命令将$bytestring1
和$bytestring2
发送到客户端时,变量$ bytestring1似乎是纯字符串,但它不起作用。
相反,变量$bytestring2
被识别为一个字节字符串,它可以工作。
问题
如何使用第一种方法创建有效的字节串?
感谢名单。
答案 0 :(得分:1)
使用http://php.net/manual/en/function.hex2bin.php
就像那样:
$codes = ["02", "66", "6c", "6a", "3a", "03"];
$byteString1 = hex2bin(implode('', $codes));