Преобразование C# BitConverter.GetBytes () в PHP - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь перенести этот C# код на PHP:

var headerList = new List<byte>();

headerList.AddRange(Encoding.ASCII.GetBytes("Hello\n"));
headerList.AddRange(BitConverter.GetBytes(1));

byte[] header = headerList.ToArray();

Если я вывожу header, как это выглядит?

Мой прогресс так far:

    $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# работает, но мой обновленный код не работает.

Thx.

...