【发布时间】:2020-08-04 16:02:36
【问题描述】:
我正在尝试将此 C# 代码移植到 PHP:
var headerList = new List<byte>();
headerList.AddRange(Encoding.ASCII.GetBytes("Hello\n"));
headerList.AddRange(BitConverter.GetBytes(1));
byte[] header = headerList.ToArray();
如果我输出header,它是什么样子的?
我目前的进展:
$in_raw = "Hello\n";
for($i = 0; $i < mb_strlen($in_raw, 'ASCII'); $i++){
$in.= ord($in_raw[$i]);
}
$k=1;
$byteK=array(8); // should be 16? 32?...
for ($i = 0; $i < 8; $i++){
$byteK[$i] = (( $k >> (8 * $i)) & 0xFF); // Don't known if it is a valid PHP bitwise op
}
$in.=implode($byteK);
print_r($in);
这给了我这个输出:721011081081111010000000
我非常有信心将字符串转换为 ASCII 字节的第一部分是正确的,但是这些 BitConverter...我不知道输出会是什么...
此字符串(或字节数组)用作套接字连接的握手。我知道 C# 版本确实可以工作,但我的翻新代码不行。
【问题讨论】:
-
如果有帮助,可以使用在线 C# repl 来检查代码:repl.it/repls/LinedPreviousDistributionsoftware
-
@ChrisHaas 请将其作为正确答案发布(连同实际输出,以及您可能想要添加的任何评论),因为它解决了我的问题。
标签: c# php type-conversion