将C#行转换为PHP

时间:2009-06-07 13:02:41

标签: c# php

我想将C#行转换为PHP,但它不起作用(结果不一样):

C#:

PHP:

有人知道怎么做吗?

由于

1 个答案:

答案 0 :(得分:1)

该代码应该返回相同的结果。

我能想到的唯一问题是“$ header [$ i]”中的数据类型是一个字符串而不是整数。这会导致PHP解析$ header [$ i]的ASCII代码而不是它应该表示的值:

预期结果:

$xorKey = 16909060;
$data = 1337;

$data = ((16 * ($xorKey ^ (~$data & 0xFF)))
                 | (($xorKey ^ (~$data & 0xFF)) >> 4)) & 0xFF;

echo $data; // int 60

使用字符串会产生以下结果:

$xorKey = 16909060;
$data = '1337'; // HERE BE DRAGONS

$data = ((16 * ($xorKey ^ (~$data & 0xFF)))
                 | (($xorKey ^ (~$data & 0xFF)) >> 4)) & 0xFF;

echo $data; // int 112

解决这个问题:

$xorKey = 16909060;
$data = '1337';

$data = intval($data); // Parse this string as an integer.

$data = ((16 * ($xorKey ^ (~$data & 0xFF)))
                 | (($xorKey ^ (~$data & 0xFF)) >> 4)) & 0xFF;

echo $data; // int 60