Я уже искал Stackoverflow и, к сожалению, ничего не нашел. Я работаю с протоколом FIX, и мне нужно сгенерировать контрольную сумму по модулю 256, как описано на http://fixwiki.fixprotocol.org/fixwiki/CheckSum.
$count = strlen($message);
$count = $count % 256;
$checksum = 256 - $count;
if(strlen($checksum) == 1) {
$checksum = '00' . $checksum;
}
if(strlen($checksum) == 2) {
$checksum = '0' . $checksum;
}
Используя строку FIX:
8=FIX.4.2|9=42|35=0|49=A|56=B|34=12|52=20100304-07:59:30
Он должен вернуться:
8=FIX.4.2|9=42|35=0|49=A|56=B|34=12|52=20100304-07:59:30|10=185|
Однако мой скрипт возвращает:
8=FIX.4.2|9=42|35=0|49=A|56=B|34=12|52=20100304-07:59:30|10=199|
Я был бы признателен, если бы кто-то мог указать мне в правильном направлении!